关于pkg-config和LD_LIBRARY_PATH

时间:2019-07-14 07:46:48

标签: c++ ubuntu compilation static-linking dynamic-linking

我试图了解Ubuntu中C ++中的编译和链接过程。

据我了解,pkg-config通常用于通过.pc提取PKG_CONFIG_PATH文件中定义的元数据,然后找到编译和链接时所需的包含文件和库文件。

我的问题是,因为我们已经有pkg-config,为什么还要麻烦使用LD_LIBRARY_PATHld.so.confpkg-configLD_LIBRARY_PATH的用法是否不同(我知道LD_LIBRARY_PATH的优先级比ld.so.conf好),或者LD_LIBRARY_PATH用于没有任何情况的情况.pc文件,还是只是优先事项?

1 个答案:

答案 0 :(得分:0)

LD_LIBRARY_PATHld.so.conf用于在加载程序(ld.so)启动程序时在运行时查找共享库。相反,pkg-config个文件包含编译使用特定库的程序(em)所需的编译器/链接器标志(-I-L-l等)(例如,通过-Lpath找到链接的shlib。

还要注意,许多库缺少.pc配置。