设置 Linux 的 LD_LIBRARY_PATH 变量
在今天的项目中,使用本地Ubantu对项目进行编译的时候出现: error while loading shared libraries: libmpc.so.3: cannot open shared object file: No such file or directory。
但是在使用 find 去对 libmpc.so.3 库进行查找,发现库又是存在的。一开始没有反应过来是什么原因。后来来明白,可能是没有找到库的路径。因此,设置 LD_LIBRARY_PATH 环境变量之后,
解决了此问题。
因为第三方的库并不处于标准的 库的路径之下(例如说是 /usr/local/lib ).所以,在进行编译的时候,需要额外的指名 库所在的路径。
库路径的指名方式分为两种:
**1.是在gcc编译的时候,使用-L和-l的方式去指定 库和库的路径:**格式如下:-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了。
**2.就是设置 LD_LIBRARY_PATH 变量,**在编译的过程中,会根据 LD_LIBRARY_PATH 变量设置的值找寻找库。 而放在/lib和/usr/lib和/usr/local/lib里的库路径是默认的搜索路径。
设置 LD_LIBRARY_PATH 变量的方式: