Linux环境变量(解决运行时找不到动态链接库的问题)

一、问题产生

程序可以顺利编译但是无法运行,提示找不到动态链接库。直接将缺失的库放在/usr/lib下程序可正常执行。尝试不改变/usr/lib中的内容,使用改变系统环境变量的方法解决该问题
为什么修改LD_LIBRARY_PATH呢
因为运行时动态库的搜索路径的先后顺序是:
1.编译目标代码时指定的动态库搜索路径;
2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
3.配置文件/etc/ld.so.conf中指定的动态库搜索路径;
4.默认的动态库搜索路径/lib和/usr/lib;

参考内容:https://blog.csdn.net/yueyecheshou1980/article/details/106096013?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-106096013-blog-125582219.235%5Ev38%5Epc_relevant_default_base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-106096013-blog-125582219.235%5Ev38%5Epc_relevant_default_base&utm_relevant_index=2

二、解决方法:

1.修改LD_LIBRARY_PATH环境变量

1.通过命令临时改变变量
2.通过修改文件永久改变用户或者整个系统的变量

参考内容
https://blog.csdn.net/weixin_48859611/article/details/113986310
https://blog.csdn.net/xishining/article/details/119283522

2.cmake分别指定编译/运行时动态库链接路径(待验证)

可以通过在CmakeLists中制定运行时的动态链接库路径,方便程序移植。

https://blog.csdn.net/JCYAO_/article/details/102519998

你可能感兴趣的:(CMake,Linux,linux)