私は、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