pkg-config 和 LD_LIBRARY_PATH 的区别
Difference about pkg-config and LD_LIBRARY_PATH
我试图在 Ubuntu 上了解 C++ 中的编译和 link 过程。
据我了解,pkg-config
通常用于通过PKG_CONFIG_PATH
提取.pc
文件中定义的元数据,然后定位编译时需要的包含和库文件link正在。
我的问题是,既然我们已经有了 pkg-config
,为什么还要费心使用 LD_LIBRARY_PATH
和 ld.so.conf
? pkg-config
和LD_LIBRARY_PATH
有不同的用途吗(我知道LD_LIBRARY_PATH
比ld.so.conf
优先级高),还是LD_LIBRARY_PATH
用于没有的情况.pc
文件,还是只是这个优先事项?
LD_LIBRARY_PATH
和 ld.so.conf
用于在 运行 时间定位共享库,当加载程序启动程序时 (ld.so
)。 pkg-config
文件改为包含 compiler/linker 标志(-I
、-L
、-l
等)构建 程序使用特定库(例如,通过 -Lpath
找到链接的 shlibs)。
另请注意,许多库缺少 .pc
配置。
我试图在 Ubuntu 上了解 C++ 中的编译和 link 过程。
据我了解,pkg-config
通常用于通过PKG_CONFIG_PATH
提取.pc
文件中定义的元数据,然后定位编译时需要的包含和库文件link正在。
我的问题是,既然我们已经有了 pkg-config
,为什么还要费心使用 LD_LIBRARY_PATH
和 ld.so.conf
? pkg-config
和LD_LIBRARY_PATH
有不同的用途吗(我知道LD_LIBRARY_PATH
比ld.so.conf
优先级高),还是LD_LIBRARY_PATH
用于没有的情况.pc
文件,还是只是这个优先事项?
LD_LIBRARY_PATH
和 ld.so.conf
用于在 运行 时间定位共享库,当加载程序启动程序时 (ld.so
)。 pkg-config
文件改为包含 compiler/linker 标志(-I
、-L
、-l
等)构建 程序使用特定库(例如,通过 -Lpath
找到链接的 shlibs)。
另请注意,许多库缺少 .pc
配置。