LIBRARY_PATH和LD_LIBRARY_PATH区别
LIBRARY_PATH和LD_LIBRARY_PATH都是用于指定动态链接库的搜索路径的环境变量,但在不同的情况下有不同的作用。
-
LIBRARY_PATH:
- LIBRARY_PATH环境变量用于指定编译器在链接阶段搜索库文件的路径。
- 当编译器在链接时需要查找共享库时,首先会在LIBRARY_PATH中指定的路径中搜索库文件,然后再在系统默认的搜索路径中查找。
- 通过设置LIBRARY_PATH,可以覆盖系统默认的搜索路径,优先使用指定路径中的库文件。
-
LD_LIBRARY_PATH:
- LD_LIBRARY_PATH环境变量用于指定运行时可执行文件在加载共享库时搜索库文件的路径。
- 当可执行文件在运行时需要加载共享库时,会根据LD_LIBRARY_PATH中指定的路径搜索库文件。
- 通过设置LD_LIBRARY_PATH,可以指定程序运行时搜索共享库的路径,并优先使用指定路径中的库文件。
总结:
LIBRARY_PATH影响编译器在链接阶段搜索库文件的路径,而LD_LIBRARY_PATH影响程序运行时加载共享库的路径。两者分别在编译和运行时期起作用。
在您的问题中,由于出现了"cannot find -lxml2"的错误,涉及到编译阶段需要找到libxml2库文件。因此,您需要设置LIBRARY_PATH环境变量来指定编译器在链接时搜索库文件的路径。