【发布时间】:2015-05-13 21:24:20
【问题描述】:
我维护了几个使用 automake 构建的项目(我们称它们为 lib1 和 lib2)。 lib2 依赖于 lib1 作为库,而我在 CentOS 上的 pkg-config 默认值存在一些问题。理想情况下,我希望用户不必设置任何环境变量即可正确安装所有内容。
现在,它只是假设 ${PREFIX}/lib/pkgconfig 作为我的 .pc 文件的目的地,但在 CentOS 7 上,${PREFIX} 的默认值为 /usr/local 但默认情况下 pkgconfig 仅在 /usr/share/pkgconfig 和 @ 中查找987654328@。因此,lib2 无法找到 lib1 和 pkg-config,并且配置脚本崩溃了。
那么,问题来了,我在lib1中的make install如何正确检测到安装pkg-config文件的目录?
【问题讨论】:
-
考虑将搜索目录添加到
PKG_CONFIG_PATH环境变量。man pkg-config有更多关于 env-vars 的详细信息。 -
效果很好。但是,我一直在寻找一种解决方案,以便通用平台(例如 RHEL/CentOS)使用它们的默认配置!
-
所以您想要基于
configure.ac中的PKG_CHECK_MODULES宏的解决方案?如果目录没有内置到 pkg-config 的搜索路径中,您将需要在 somewhere 中设置搜索目录。 -
真正的问题不是在哪里搜索 pacakges,而是在哪里安装 .pc 文件。更像是一个宏来确定 pkgconfig 想要它的 pc 文件去哪里,因为在这种情况下 ${prefix}/lib/pkgconfig 似乎是错误的。
-
confg.site控制在何处查找内容,例如基于 Red Hat 的系统上的lib64库目录。 Fedora 也遇到了这个问题。另见config.site for vendor libs on Fedora x86_64。
标签: centos automake pkg-config