Gcc PKG-CONFIG如何在两个.pc文件之间进行选择?
我有两个glib-2.0的.pc文件Gcc PKG-CONFIG如何在两个.pc文件之间进行选择?,gcc,pkg-config,Gcc,Pkg Config,我有两个glib-2.0的.pc文件 /usr/lib/x86_64-linux-gnu/pkgconfig/glib-2.0.pc /usr/local/lib/pkgconfig/glib-2.0.pc 它们的不同之处在于指向包含文件的位置 /usr/lib/x86... points to /usr/include /usr/local/lib... points to /usr/local/include 这会在我运行时导致问题: pkg-config --cflags gtk+-3
/usr/lib/x86_64-linux-gnu/pkgconfig/glib-2.0.pc
/usr/local/lib/pkgconfig/glib-2.0.pc
它们的不同之处在于指向包含文件的位置
/usr/lib/x86... points to /usr/include
/usr/local/lib... points to /usr/local/include
这会在我运行时导致问题:
pkg-config --cflags gtk+-3.0
这将返回以下glib-2.0搜索位置:
-I/usr/local/include/glib-2.0
-I/usr/local/lib/glib-2.0/include
而我的软件包管理器已将glib库安装到
/usr/include/glib
问题1:PKG-CONFIG为什么选择第二个位置而不是第一个位置?我怎样才能改变这个
问题2:拥有两个相同的.pc文件是否异常
问题3:如果我确实想删除其中一个.pc文件,我可以安全地删除吗
注:
您可以使用PKG_CONFIG_LIBDIR环境变量覆盖默认搜索目录 还有PKG_CONFIG_PATH,可以用作以冒号分隔的目录列表来搜索.pc文件
有关更多信息,请参阅pkg config的手册页。谢谢,更改pkg_config_LIBDIR以控制默认搜索允许我选择所需的.pc文件。是否不能将
pkg_config_LIBDIR
与多个目录一起使用?我在交叉编译器根目录中有一些包,在/usr/local/lib/pkgconfig
中有一些包,但我希望避免与/usr/lib/pkgconfig
中的任何包发生冲突。