在编译和链接C
和C++
代码时,LTDL_LIBRARY_PATH
和LD_LIBRARY_PATH
环境变量的目的是什么?此外,它们之间有什么区别?
谢谢。
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
,[tag:c]或者[tag:c++]程序只有在明确需要时才会关注它。 - Iharob Al AsimiLD_LIBRARY_PATH
。 - Baum mit AugenLD_LIBRARY_PATH
用于动态链接器搜索要加载的库。从未听说过LTDL_LIBRARY_PATH
。http://man7.org/linux/man-pages/man8/ld.so.8.html - Galik