caffe编译之路

caffe编译:fatal error: pyconfig.h: No such file or directory #include "pyconfig.h"

在网上搜了相关解决方法

其中 ,有的方法不可行,有的方法不全面,

经过个人尝试,可以采用以下完备方案:

首先尝试

修改Makefile.config,将
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
#                 $(ANACONDA_HOME)/include/python2.7 \
#                 $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
取消以下2行注释
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
如果继续报错,则 执行 locate pyconfig.h

找到/usr/include/python2.7 /pyconfig.h

尝试执行export CPLUS_INCLUDE_PATH=/usr/include/python2.7 

后 再执行make all 依然报错

最后 只能把

PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
改为
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
/usr/include/python2.7 

编译通过


问题2 undefined reference to imdecode( )

今天给吉姐编译 Caffe 的时候,碰到如下的错误:

..build_release/lib/libcaffe.so: undefined reference to cv::imdecode(cv::_InputArray const&, int)
.build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)

这里写图片描述

因为昨天我将在服务器上编译安装了 openCV3,所以我怀疑是 openCV 的问题。
想起来 Caffe 的 Makefile.config 中,有一个注释,当我们使用 openCV3 的时候,需要取消。果然,当取消之后,就可以 make all 了。

首先,我是已经配置过了opencv的,可以这样查询安装版本:

$ pkg-config --modversion opencv

因为编译好了,理所当然,输出结果是3.1.0

所以出现上面的错误,应该是opencv_imgcodecs链接的问题,比较有效的解决方案是,把opencv需要的lib添加到Makefile文件中,找到LIBRARIES(在PYTHON_LIBRARIES := boost_python python2.7 前一行)并修改为:

LIBRARIES += glog gflags protobuf leveldb snappy \        lmdb boost_system hdf5_hl hdf5 m \        opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs



问题3

makefile编译时候出现:commands commence before first target

我们知道, 在C/C++语言中, 可以用\来换行, 此时要注意, 在一行的最后面加上\,  而这个\后面不能再有任何字符, 哪怕是空格, 也不允许, 否则出错。

        对于makefile, 也有类似的原则, 最近写makefile,  一不小心, 在\后多了个空格, 结果编译出现:commands commence before first target

        要小心啊。


问题4
为防止编译时出现错误信息:error while loading shared libraries:libhdf5.so.10: cannot open shared object file: No such file or directory
解决方法:在终端执行以下命令
sudo cp /home/tap880507/anaconda2/lib/libhdf5.so.10 /usr/lib/i386-linux-gnu/libhdf5.so.10  

问题5

import caffe报错No module named google.protobuf.internal

原因是装了anaconda2, python配置的运行环境在anaconda2下,这个环境没有安装protobuf,需要自己重新装。

解决办法是:

sudo chmod 777 -R  anaconda2(文件夹) 改变权限 然后
conda install protobuf


就搞定啦~


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值