如何在两个 .pc 文件之间进行 PKG-CONFIG select?
How does PKG-CONFIG select between two .pc files?
我有两个 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.0
此 returns 以下 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 文件,我可以安全地这样做吗?
注:
- 我不想将 glib 库复制到 /local/,因为包管理器会忽视它。
- 我不希望在 运行ning gcc 时另外添加 -I/usr/include,因为我希望 PKG-CONFIG 能够正常工作。 (我也认为这会导致其他问题,我将不得不手动修改)
您可以使用 PKG_CONFIG_LIBDIR 环境变量来覆盖默认搜索目录。
还有 PKG_CONFIG_PATH 可用作以冒号分隔的目录列表来搜索 .pc 文件。
有关详细信息,请参阅 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.0
此 returns 以下 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 文件,我可以安全地这样做吗?
注:
- 我不想将 glib 库复制到 /local/,因为包管理器会忽视它。
- 我不希望在 运行ning gcc 时另外添加 -I/usr/include,因为我希望 PKG-CONFIG 能够正常工作。 (我也认为这会导致其他问题,我将不得不手动修改)
您可以使用 PKG_CONFIG_LIBDIR 环境变量来覆盖默认搜索目录。
还有 PKG_CONFIG_PATH 可用作以冒号分隔的目录列表来搜索 .pc 文件。
有关详细信息,请参阅 pkg-config 的手册页。