需要使用到matlab
接下来我们要进行matcaffe的编译
我们安装的是Matlab2017b
混合编译只支持到g++ 4.9.x
不然就会出错
如上所属,matlab支持的是4.9.x,而我的系统gcc和g++是5.4.0
所以必须换成4.9.x,而且caffe所有的重新编译
ubuntu 16.04 gcc高低版本切换
https://blog.csdn.net/wu11zhike/article/details/83865549
使用上述方式进行安装切换,出现错误
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 100
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50
sudo update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.9 100
sudo update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-5 50
又重新来了一遍还是不好使
参考博客:
https://www.cnblogs.com/darkknightzh/p/5797526.html
解决!!!
如果电脑中有多个g++,需要设置编译时使用的g++,可以取消注释Makefile.config中第25行,同时修改CUSTOM_CXX为需要的路径,如下(别少了那一杠)
CUSTOM_CXX := /usr/bin/g++-4.9
直接在Makefile最开始增加下面一句话:
CXX := /usr/bin/g++-4.9
还是出错,想问题,哪里出差:
参考:
https://github.com/BVLC/caffe/issues/19
这里我怀疑和
CUSTOM_CXX := /usr/bin/g++-4.9
CXX := /usr/bin/g++-4.9
已经没有关系,就是下面的命令问题,所以我把上面更改的改回来了,然后运行下面的命令
sudo apt-get remove --purge libprotobuf-dev
sudo apt-get remove --purge libleveldb-dev
sudo apt-get remove --purge libsnappy-dev
sudo apt-get remove --purge libopencv-dev
sudo apt-get remove --purge libhdf5-serial-dev
sudo apt-get remove --purge protobuf-compiler
sudo apt-get remove --purge libgflags-dev
sudo apt-get remove --purge libgoogle-glog-dev
sudo apt-get remove --purge liblmdb-dev
sudo apt-get remove --purge libatlas-base-dev
sudo apt-get clean libprotobuf-dev
sudo apt-get clean libleveldb-dev
sudo apt-get clean libsnappy-dev
sudo apt-get clean libopencv-dev
sudo apt-get clean libhdf5-serial-dev
sudo apt-get clean protobuf-compiler
sudo apt-get clean libgflags-dev
sudo apt-get clean libgoogle-glog-dev
sudo apt-get clean liblmdb-dev
sudo apt-get clean libatlas-base-dev
sudo apt-get install libprotobuf-dev
sudo apt-get install libleveldb-dev
sudo apt-get install libsnappy-dev
sudo apt-get install libopencv-dev
sudo apt-get install libhdf5-serial-dev
sudo apt-get install protobuf-compiler
sudo apt-get install libgflags-dev
sudo apt-get install libgoogle-glog-dev
sudo apt-get install liblmdb-dev
sudo apt-get install libatlas-base-dev
apt-get update 更新软件列表信息(注意只是更新列表,并未更新程序,后接apt-get upgrade)
apt-get upgrade 更新程序
apt-get dist-upgrade 版本升级
apt-get install packagename(安装程序包)
apt-get remove packagename (卸载程序)
apt-cache search packagename(搜索程序包)
apt-get clean 删除所有已下载的包文件
apt-get autoclean 删除已下载的旧包文件
apt-get autoremove 卸载所有自动安装且不再使用的软件包
E: Unable to locate package libsnappy-dev 是因为多加了一个空格
E: Unable to locate package libprotobuf-dev
还是不行
protoc --version
卸载,自己编译protobuf2.5
https://github.com/protocolbuffers/protobuf
which protoc
找到错误了:
参考博客:
https://blog.csdn.net/Solomon1558/article/details/52015754
https://blog.csdn.net/u014535579/article/details/78793205
博主的意思,一旦降级软连接,所有的库全删除,然后自己编译安装
http://caffe.berkeleyvision.org/install_apt.html
# glog
wget https://github.com/google/glog/archive/v0.3.3.tar.gz
tar zxvf v0.3.3.tar.gz
cd glog-0.3.3
./configure
make && make install
# gflags
wget https://github.com/schuhschuh/gflags/archive/master.zip
unzip master.zip
cd gflags-master
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
make && make install
# lmdb
git clone https://github.com/LMDB/lmdb
cd lmdb/libraries/liblmdb
make && make install
心累了,不想弄了,本来想弄个可视化呢,哎,等心情好再弄
有找了一个,这个是自己编译所有库:
https://www.jianshu.com/p/5497991dd8a7
https://blog.csdn.net/u011713358/article/details/79422801