caffe配置问题与解决方法集锦

最好的方案,安装和编译caffe时不会出现问题:

https://blog.csdn.net/zhuiqiuzhuoyue583/article/details/88756053

问题1:./include/caffe/util/cudnn.hpp:8:34: fatal error: caffe/proto/caffe.pb.h: 解决方法

caffe.pb.h丢失问题

解决方法:

     用protoc从caffe/src/caffe/proto/caffe.proto生成caffe.pb.h和caffe.pb.cc

cd /home/zqzy/caffe-master-py2/src/caffe/proto/

protoc --cpp_out=/home/zqzy/caffe-master-py2/src/caffe/proto/ caffe.proto 

注意:caffe.proto前面有空格

参考:https://blog.csdn.net/u012759006/article/details/82496237

            https://blog.csdn.net/u010167269/article/details/50703923

问题2:.build_release/src/caffe/proto/caffe.pb.h:17:2: error: #error This file was generated by an older version of protoc which is

w

我将/home/zqzy/anaconda2/bin 中的protoc 拷贝到了 /usr/bin  中了,这就没有报错了

原因:
在terminal中运行 :sudo protoc --version

                                  会显示当前版本是2.6.1,

运行:protoc --version

                                  就会显示版本是3.2.0

由于我的/home/zqzy/anaconda2/bin中有合适的版本,所以我是打算直接用这里的protobuf,通过查资料,了解到sudo的时候,默认的环境变量在/etc/sudoers文件中,一般来说sudo会重置$PATH,而sudoers文件有这样一行

Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

所以 sudo的时候$PATH就是从这里读取,因此我只需添加我的路径就可以了,注意要把路径添加在其他版本路径的前面,位置决定了读取顺序。

修改 /etc 下的sudoers文件:

执行命令: sudo gedit /etc/sudoers
将
Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

修改为:
Defaults   	secure_path="/usr/local/sbin:/usr/local/bin:/home/zqzy/anaconda2/bin:/usr/sbin:/usr/bin:/sbin:/bin"

注意sudoers文件很重要,修改前记得备份

secure_path是即时生效的,这时候再次运行sudo使用的版本就变成了我需要的3.2.0版本。

参考:https://blog.csdn.net/elysion122/article/details/64523339/

问题3:.undefined reference to `google::protobuf::MessageLite

解决方法:

这个还没解决,试了很多方法,都不行,最后是在python2的基础上进行安装caffe,这就成功了。

详情见:https://blog.csdn.net/zhuiqiuzhuoyue583/article/details/88756053

最好的方案:https://blog.csdn.net/zhuiqiuzhuoyue583/article/details/88756053

猜你喜欢

转载自blog.csdn.net/zhuiqiuzhuoyue583/article/details/88737847