我正在尝试使用 Cygwin 方法重新学习 C,使用 Ben Klemens 的《21 世纪 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