caffe 编译出现protobuf的坑.....

7 篇文章 0 订阅

prptpbuf的坑差不多填了我一天半的时间吧....简直了。。

报错如下:

在函数‘caffe::UpgradeV0LayerParameter(caffe::V1LayerParameter const&, caffe::V1LayerParameter*)’中:
upgrade_proto.cpp:(.text+0xac2):对‘google::protobuf::internal::kEmptyString[abi:cxx11]’未定义的引用

百度之就是protobuf的问题了。

首先我找到了知乎protobuf版本问题上的方法,说是自己在caffe下的makefile里指定好你使用的protobuf版本路径(因为这个bug我手动重装了一个2.50版本的protobuf,可参考:手动安装protobuf2.5.0),并且把之前各种比较混乱的(比如装了anaconda或者tensorflow之类的话,你就会发现你的protobuf特别乱...)protobuf都uninstall了...      但是,还是不好使啊......

然后,各种百度谷歌尝试路径修改之类的,终于看到了这篇:protobuf解决之干掉anaconda路径

很关键,解决方案在文末,就是把anaconda的python环境变量设置先屏蔽一下下....make完caffe再可以改回来的~

好的,我把这最后的方案试了一遍,还是不行啊.....简直气死了.....

最后呢,我差点想把caffe remove掉流程重新来一遍了.....因为太乱了.......

然后就:

cmake -D CMAKE_BUILD_TYPE=Release -D BLAS=Open -D BUILD_SHARED_LIBS=Off ..

这一句重新生成release下的文件的。。。然而我却发现这里居然显示报错,,,这就神奇了,看了下里面的一个makefilerr.log(具体名字忘了)的一个文件,嗯很多行的错误。。所以,感觉应该是这里就bug了.

好的,于是,重点来了,

1. 把release下的文件全部删掉;

2. 把anaconda的python环境变量设置暂时屏蔽掉:

sudo gedit .bashrc

 

3. 好了可以开始编译caffe了......(这里我的makefile是这样的,因为自己手动重装了个protobuf2.5.0)

 

cd /path to caffe/Release/
make -j8  #j8加快编译速度
make install

 

ok,问题终于解决了~~~

 

 

不放心的话,用个例子测试下吧:mnist caffe测试

结果:

运行很快,有gpu+cudnn的话~

 

这里补充几个查看protobuf版本信息之类的命令:

查看哪些路径安装了protoc:

whereis protoc

查看默认调用的protoc是哪个:

which protoc

查看默认的protoc的版本:

protoc --version

查看pip安装的protoc的信息:(我的话就显示我在anaconda下的3.5+的版本了)

pip show protobuf

 

欢迎大家指正讨论and补充~~~!!!

 

 

20180927更新:

最近在尝试caffe跑跑faster rcnn,又遇到以上的protobuf问题了....神奇的是protobuf2.50不好使啊.....怪我自己盲目自信的认为版本没问题了啊,装对了啊......然而,这个问题一直到晚上还是存在.....无奈还是重装了2.6.1版本的....ok就没问题了~

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值