我试图了解Ubuntu中C ++中的编译和链接过程。
据我了解,pkg-config
通常用于通过.pc
提取PKG_CONFIG_PATH
文件中定义的元数据,然后找到编译和链接时所需的包含文件和库文件。
我的问题是,因为我们已经有pkg-config
,为什么还要麻烦使用LD_LIBRARY_PATH
和ld.so.conf
? pkg-config
和LD_LIBRARY_PATH
的用法是否不同(我知道LD_LIBRARY_PATH
的优先级比ld.so.conf
好),或者LD_LIBRARY_PATH
用于没有任何情况的情况.pc
文件,还是只是优先事项?
答案 0 :(得分:0)
LD_LIBRARY_PATH
和ld.so.conf
用于在加载程序(ld.so
)启动程序时在运行时查找共享库。相反,pkg-config
个文件包含编译使用特定库的程序(em)所需的编译器/链接器标志(-I
,-L
,-l
等)(例如,通过-Lpath
找到链接的shlib。
还要注意,许多库缺少.pc
配置。