ubuntu16.04安装caffe时编译遇到的问题

图片说明
第一次在安装caffe的时候,make all -j16报这个错,cuda、cudnn、nccl、opencv都装成功了
,依赖包也都装了,实在是不知道哪里的问题,大神帮忙出来看一下吧!!!

http://blog.csdn.net/laogaoav/article/details/9059561
希望能帮助你

1.以为是上面的iconv中的小于号导致出错的呢,结果去掉小于号后,还是同样错误。

2.然后添加了上述的echo命令,结果是hhc后面那句:+++after hhc,是没有显示出来,证实了hhc命令本身执行结果就是错误的,所以hhc执行出错后,返回到makefile,然后makefile报上述recipe for target failed的错误。

3.但是很奇怪是,上述的hhc那行命令,单独去cygwin的命令中执行,却是没有显示啥错误的。估计是返回值错误,也没有任何人捕获,所以也不知道错误吧。

4。然后想要去找办法,去从makefile中获得上次命令行执行的结果,结果却始终由于无法执行hhc的后面那句,而无从获得。

5.然后就想到,本身hhc命令虽然出错,但是目的已经达到,已经可以正常生成chm了,所以,此处想要想办法去在makefile执行过程中,忽略此error即可。

http://blog.csdn.net/woainishifu/article/details/73995489

  1. Google的protobuf,它其实和XML差不多,也就是把某种数据结构的信息以某种格式保存起来,主要用于数据存储,传输协议格式等场合。

  2. LevelLDB也是Google实现的一个非常高效的单机kv数据库,目前已经能够支持billion级别的数据量了。具有很高的随机写,顺序读/写性能,但是随机读的性能很一般,所以它很适合用在查询少而写很多的场景。

  3. Snappy是一个C++写的用来压缩和解压缩的开发包,它的目标不是实现最大限度的压缩或者兼容其他的压缩格式,而是旨在提高高速压缩速度和合理的压缩率。Snappy是在Google内部被广泛使用,Google极力赞扬Snappy的各种优点,Snappy从一开始就被“设计为即便遇到损坏或者恶意的输入文件都不会崩溃”,而且被Google在生产环境中用于压缩PB级的数据。其健壮性和稳定程度可见一斑。

  4. OpenCV,这个不多说了。

  5. hdf5,就理解为一种文件格式吧。全称是Hierarchical Data Format,可以存储不同类型的图像和数码数据的文件格式,并且可以在不同类型的机器上传输,同时还有统一处理这种文件格式的函数库。

  6. Boost,是一个C++库,是为C++语言标准库提供扩展的一些C++程序库的总称。

(1)caffe编译的问题解决:“cublas_v2.h: No such file or directory”

解决方案:参考 将 uer/local/cuda-8.0/下的include和lib64 将其分别添加到caffe根目录下Makefile.config中的"INCLUDE_DIRS"、“LIBRARY_DIRS”后面就可以 了。

/usr/local/cuda-8.0/include加到INCLUDE_DIRS := $(PYTHON_INCLUDE)后面,注意空一格。

/usr/local/cuda-8.0/lib64加到LIBRARY_DIRS := $(PYTHON_LIB)后面,注意空一格。

注意编译出错时候,修改后再编译时候建议 make clean 把上一次的编译的清除掉。

(2)/usr/local/cuda/bin/nvcc:命令未找到:

解决方案:参考 在Makefile.config的第28行内容从CUDA_DIR := /usr/local/cuda修改为(我这边nvcc所在位置为CUDA_DIR := /usr/local/cuda-8.0):

问题解决,别忘了 make clean 后再 make all

(3)error while loading shared libraries: libcudnn.so.5: cannot open shared object file: No such file or directory

问题意思是找不到cudnn文件。解决方案:创建软连接 。

参考1

$ cd /usr/local/cuda/lib64/

$ sudo rm -rf libcudnn.so libcudnn.so.5

然后修改文件权限,并创建新的软连接

$ sudo chmod u=rwx,g=rx,o=rx libcudnn.so.5.1.10

$ sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5

$ sudo ln -s libcudnn.so.5 libcudnn.so

可是到这里再重新编译还是同一个问题,不知道为什么,于是用了参考2 中的方法,最后解决了。

解决方案:发现了libXXX.so.1.2.3的确存在,就把libXXX.so.1.2.3所在的目录加入到 /etc/ld.so.conf 中,或者在 /etc/ld.so.conf.d/ 下新建一文件,如 XXX.conf ,其内容是libXXX.so.1.2.3所在的目录。(我用的后面一种方法,在/etc/ld.so.conf.d/内先创建cuda.conf,然后在里面写入/usr/local/cuda-8.0/lib64/)

这里可能涉及到了 怎么创建一个.conf文件,并且写入 libXXX.so.1.2.3所在的目录的路径。

以上三个问题解决后,caffe就装成功了,不容易呀!

重新安装一下protobuf就可以了。
先卸载protobuf
再重新安装