在linux上配置caffe上经常会遇到各种错误,其中就包括ld error,即链接库无法找到之类的错误,因此在这里总结一下linux动态库搜索路径的配置。
动态链接库
动态链接库是程序运行时需要加载的库,类似windows里的dll
,常以.so
结尾,里面打包了c/c++
程序的一些具体实现。
当我们运行某个程序需要依赖某个动态库时,就需要给程序指定该动态库的路径。
动态库路径
动态库的搜索路径可以通过以下方式配置:
- 根据
LD_LIBRARY_PATH
这个环境变量来找,可以通过在~/.bashrc
中加入export LD_LIBRARY_PATH=/XXX:$LD_LIBRARY_PATH
来配置该环境变量,然后用source ~/.bashrc
使其生效。 - 更改配置文件
/etc/ld.so.conf
,加入搜索路径。 - 进到
/etc/ld.so.conf.d/
目录下,会有很多*.conf
文件,可以加入自定义的.conf
文件来配置搜索路径,比如opencv的配置文件opencv.conf
中加入/usr/local/lib
,让系统在该路径下去找opencv的libraries (libopencv*.so*)。
链接错误解决方法
如果遇到ld错误,说找不到某某库文件 (.so),则需先在系统中搜索该库文件是否存在,用locate libxxx.so
。若存在,则是因为系统找不到该库文件,需要按照上述方式手动添加;若不存在,则可用apt-get
安装库或者下载源码libxxx.tar.gz
自行编译。
(先写到这里吧,后续有再补充…)