http://blog.csdn.net/houqiqi/article/details/46469981
注:如果指令行模式实在解决不了/lib/libcaffe.so: undefined reference to `Mat_VarReadDataLinear'问题,可以尝试在QT下进行训练和测试。
1, 下载matio(http://sourceforge.NET/projects/matio/)
2,,安装
$ tar zxf matio-X.Y.Z.tar.gz
$ cd matio-X.Y.Z
$ ./configure
$ make
$ make check
$ make install
$ cd matio-X.Y.Z
$ ./configure
$ make
$ make check
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /home/baw010/houqiqi/dependencies/matio-1.5.2/src/.libs
libmatio.so.2.0.2: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0257ed156096e0f3a0014de932d7a4e484ac8559, not stripped
LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的两个环境变量,二者的含义和作用分别如下:
LIBRARY_PATH环境变量用于在 程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录。
LD_LIBRARY_PATH环境变量用于在 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径,注意,LD_LIBRARY_PATH中指定的路径会在系统默认路径之前进行查找。
GCC链接选项-L,-rpath-link和-rpath-L: “链接”的时候,去找的目录,也就是所有的 -lFOO 选项里的库,都会先从 -L 指定的目录去找,然后是默认的地方。
-rpath_link (或者 -rpath-link):这个也是用于“链接”的时候的,例如你显示指定的需要 FOO.so,但是 FOO.so 本身是需要 BAR.so 的,后者你并没有指定,而是 FOO.so 引用到它,这个时候,会先从 -rpath-link 给的路径里找。
-rpath: “运行”的时候,去找的目录。运行的时候,要找 .so 文件,会从这个选项里指定的地方去找。对于交叉编译,只有配合 --sysroot 选项才能起作用。
也就是说,-rpath指定的路径会被记录在生成的可执行程序中,用于运行时。
-rpath-link 则只用于链接时。
在 Linux 下,如果你写好了自己的动态链接库,需要在其它程序里调用,则需要让这些程序能找到这些动态链接库。如果设置不对,会出现类似如下的错误:
test: error while loading shared libraries: libexampleso.so.0: cannot open shared object file: No such file or directory
这是因为没有把动态链接库的安装路径(例如说是 /usr/local/lib )放到变量 LD_LIBRARY_PATH 里。
这时,可以用命令 export 来临时测试确认是不是这个问题:
export LD_LIBRARY_PATH=/usr/local/lib
在终端里运行上面这行命令,再运行这个可执行文件,如果运行正常就说明是这个问题。
接下来的问题是:以上做法,只是临时设置变量 LD_LIBRARY_PATH ,下次开机,一切设置将不复存在;如何把这个值持续写到 LD_LIBRARY_PATH 里呢?
我们可以在 ~/.bashrc 或者 ~/.bash_profile 中加入 export 语句,前者在每次登陆和每次打开 shell 都读取一次,后者只在登陆时读取一次。我的习惯是加到 ~/.bashrc 中,在该文件的未尾,可采用如下语句来使设置生效:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
修改完后,记得关掉当前终端并重新打开一个新的终端,从而使上面的配置生效。
http://blog.csdn.net/liuxiabing150/article/details/52035621
DeepLab V2下载website:
https://bitbucket.org/aquariusjay/deeplab-public-ver2
在页面左上角clone即可
然后再依次执行下列命令:
cp Makefile.config.example Makefile.config
# Adjust Makefile.config (for example, if using Anaconda Python, or if cuDNN is desired)
make all
make pycaffe
make test # NOT mandatory
make runtest # NOT mandatory
注:在make all的时候,会报错:
bug1:matio.h no such file or directory
解决方法:执行下列命令即可:
- sudo apt-get install libmatio-dev
参考网址:https://bugs.launchpad.NET/ubuntu/+source/dynare/+bug/1537380
bug2:caffe/common.cu error: function atomicadd has already been defined
解决方法:https://github.com/vlfeat/matconvnet/issues/575
即找到/include/caffe目录下的common.cuh文件,在atomicAdd 函数的上下方添加以下code:
- #if !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 600
- #else
- <... place here your own pre-pascal atomicAdd definition ...>注:这里即common.cuh中atomicAdd函数的定义
- #endif
For this error
ImportError: libcudart.so.7.0: cannot open shared object file: No such file or directory
I have executed this command to solve it
sudo ldconfig /usr/local/cuda/lib64