cygwin 上的 pkg-config 找不到 gsl 包

cygwin 上的 pkg-config 找不到 gsl 包

我正在尝试使用 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

相关内容