LTDL_LIBRARY_PATH和LD_LIBRARY_PATH有什么区别?

3

在编译和链接CC++代码时,LTDL_LIBRARY_PATHLD_LIBRARY_PATH环境变量的目的是什么?此外,它们之间有什么区别?

谢谢。


1
这些标签与你的问题无关。我认为只有glibc关心LD_LIBRARY_PATH,[tag:c]或者[tag:c++]程序只有在明确需要时才会关注它。 - Iharob Al Asimi
实际上,我相信C和C++程序在寻找共享库时(包括Linux上的C++标准库),确实会使用LD_LIBRARY_PATH - Baum mit Augen
不是 C 和 C++ 运行时。 - Iharob Al Asimi
LD_LIBRARY_PATH 用于动态链接器搜索要加载的库。从未听说过 LTDL_LIBRARY_PATH。http://man7.org/linux/man-pages/man8/ld.so.8.html - Galik
1个回答

6
LTDL_LIBRARY_PATH 设置了一个库搜索路径,用于libtool library, 它是一个辅助/可移植性库,用于使用共享库。该库将在搜索LD_LIBRARY_PATH之前搜索此路径中的目录,LD_LIBRARY_PATH是环境变量,用于设置系统共享库加载器的搜索路径。

根据libtool文档

如果libltdl无法找到库,且文件名filename没有目录组件,则还将按以下顺序查找模块的以下搜索路径:

  • 用户定义的搜索路径:可以使用函数lt_dlsetsearchpath、lt_dladdsearchdir和lt_dlinsertsearchdir更改此搜索路径。
  • libltdl的搜索路径:这个搜索路径是环境变量LTDL_LIBRARY_PATH的值。
  • 系统库搜索路径:系统相关的库搜索路径(例如,在GNU/Linux上是LD_LIBRARY_PATH

如上所述,LD_LIBRARY_PATH是一个环境变量,系统将使用它来搜索共享库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接