您的位置:首页 > Web前端

编译caffe的一个protobuf问题

2017-03-20 17:04 549 查看

编译caffe遇到的一个奇葩问题

一直都显示protobuf的问题,如下图所示:



undefined reference to ‘google::protobuf::MessageLite::SerializeToString’

对于我这种老司机来说,编译安装caffe已经无数次了,看到这个的第一反应就是libprotobuf-dev这个没有安装,于是

sudo apt-get install libprotobuf-dev


但是系统提示我已经安装了。于是我想到会不会是没安装好,于是

sudo apt-get remove libprotobuf-dev


但是问题依然存在。然后我想到我之前切换过gcc的版本,会不会这个有问题,然后

sudo update-alternatives --config gcc


切换到gcc5.6版本

但是问题依然存在啊,我的天,瞬间我有种不祥的预感。于是把错误在google上一贴,确实有人说编译器的版本问题,也有人说libprotobuf-dev这个东西不好,需要自己编译protobuf源码。

所以我又尝试去下载protobuf源码编译

1、https://github.com/google/protobuf

2、./configure

3、make

4、make check

5、sudo make install

6、sudo ld config

然后我又重新make clean,再次的make

但是依然还是同样的错误啊。

简直泪崩。

最后我想手动地把所有关于protobuf的东西全部删除。

/usr/local

/usr/local/lib等等这里面的protobuf的相关东西全部删除。然后再重新编译protobuf。但是依然还是错误。

然后我检查Makefile的里面的protobuf的包含路径,也都是确实没有问题。

然后我一怒之下把python环境配置为系统自带的python环境,马丹,,,居然错误就没有了。瞬间就定位到错误原来是anaconda。因为我的anaconda里面安装了tensorflow的环境,所以一直没动它,tensorflow里面也是需要protobuf的,里面安装的protobuf版本和系统安装的版本有了冲突所以就一直出错。

。。。。。

最后就是这个问题了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: