cygwin の pkg-config は gsl パッケージを見つけられません

cygwin の pkg-config は gsl パッケージを見つけられません

私は、Ben Klemens 著の 21st Century C の本を使用して、Cygwin 方式で C を再学習しようとしています。Cygwin をインストールし、apt-cyg を使用して、本に記載されているパッケージをインストールしています。パッケージは正常にインストールされたようで、gcc、make、pkg-config などを呼び出すことができますが、pkg-config は何も見つけられないようです。具体的には、次のものが何も見つかりません:

$ pkg-config --libs gsl
$ pkg-config --cflags gsl

パスの変更に関する質問をいくつか見ました。次のように変更してみました。

$ export PKG_CONFIG_PATH=c:\\cygwin\\usr\\local\\lib\\pkgconfig
$ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
$ export PKG_CONFIG_PATH=C:\\cygwin\\bin

以下のものもすべてすでにインストールされています:

  • バイナリユーティリティ
  • グーグル
  • gccコア
  • gcc-g++
  • 作る
  • グーグル
  • グーグル

以下を使用してインストールされていることを確認しました:

$ cygcheck -c | grep {string}

確かに、私は Linux システムにあまり詳しくありません。そうでなければ、それが私のメイン システムとなり、Cygwin を使用することはなかったでしょう ;)

答え1

間違ったパスを設定していました。エクスポート コマンドが PKG_CONFIG_PATH 変数にパスを追加していると思っていましたが、パスを追加したい場合は、先頭に変数をプレフィックスとして追加し (Windows で行うように)、コロンで区切る必要がありました。

$ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:{my_new_path}

しかし、それが pkg-config が gsl を見つけられない本当の問題ではありませんでした。パッケージをインストールしたと思っていたのに、実際にインストールする必要があったのは gsl-devel であり、その後、その .pc ファイルが /lib/pkgconfig に追加されるのです。

要約すると、パッケージ マネージャーを使用して {package-name}-devel (gsl-devel) をインストールし、関連する {package-name}.pc ファイル (gsl.pc) を追加する必要がありました。

変数を正しく設定します。

$ export PKG_CONFIG_PATH=/lib/pkgconfig

次に開発パッケージを取得します。

$ apt-cyg install gsl-devel

関連情報