PKG-CONFIG如何在两个.pc文件之间进行选择?

时间:2016-02-28 18:35:35

标签: gcc pkg-config

我有两个。gl文件用于glib-2.0

/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文件,我可以安全地删除吗?

注意:

  1. 我不希望将glib库复制到/ local /,因为包管理器会忽略这一点。
  2. 我不希望在运行gcc时添加-I / usr / include,因为我希望PKG-CONFIG正常工作。 (我也认为这将导致我必须手动修改的其他问题)

1 个答案:

答案 0 :(得分:0)

您可以使用PKG_CONFIG_LIBDIR环境变量覆盖默认搜索目录。

还有PKG_CONFIG_PATH,它可以用作以冒号分隔的目录列表来搜索.pc文件。

有关详细信息,请参阅pkg-config的手册页。