zoukankan      html  css  js  c++  java
  • 记我安装Caffe的血泪史(2)

    不知不觉居然花了一个星期来安装Caffe。。。真是醉了。

    接上一篇blog,本以为编译完cuda,opencv之后问题就差不多了(其实本来是没有什么问题的,但硬是被我搞了一堆事情出来....)

    出于对作死的热爱,本人没有选择官方的Caffe进行安装,而是选择了一位韩国大兄弟diy过的Caffe。

    然后就是疯狂的报错...一瞬间报错4000行你敢不敢信?多得终端都显示不完...由于我是中文的ubuntu,报错里面还是一堆乱码。

    研究了许久没有结果之后我把调试信息的输出改成中文,然后将编译信息输出到文件里....

    然而着这并没有什么卵用(妈个鸡)

    这是上星期四的安装进度...

    一直跳票到前天下午,我,又回来了,面对4000行的报错信息...

    这4000行的报错是什么样的呢...

    undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()

    就是它!Caffe里几乎所有的cpp代码都报了这个错!

    机智的我首先想到是不是编译器版本不对...

    于是我把gcc5,gcc4.9,gcc4.8,gcc4.7(包括g++)都试了一遍....

    然并卵....

    而且网上居然没有人说在安装Caffe的时候遇到过这个问题

    本来我也考虑过是不是这位大兄弟的Caffe有问题...所以我也把官方的Caffe也下了下来...

    但是...由于Makfile和Makefile.configure需要修改,所以我把这位兄弟的Makefile拷到了官方的Caffe里面...

    然后官方的Caffe也报出了一样的错...

    你应该已经猜到了...没错,就是这位兄弟的Makefile !

    当我把官方原版的Makefile从github上拷下来之后...错误果然没有了!!!

    现在的错误变成了

     undefined reference to `google::protobuf::io::CodedOutputStream::WriteStringWithSizeToArray(std::string const&, unsigned char*)

    然而这个错误其实是我自找的....

    因为之前报错的时候我怀疑是protobuf的问题...然后我用gcc4.9重新编译了一遍protobuf....

    于是我用gcc5编译Caffe的时候果断出错了..

    然而我用gcc5重新编译了一遍protobuf之后还是报错...

    MDZZ

    最后发现是自己忘记make clean了...

    所以gcc4.9编译出来的protobuf反复被install上去...真是醉了

    其实遇到了很多问题...不过记不太清了...有的问题bing一下就解决了,改改Makefile,配置文件就行了

    ,有的问题和上述差不多,就是gcc版本不对...

    我遇到的最多的问题就是gcc的版本冲突问题,这个很重要,搞清楚了这个caffe的安装就轻松多了。

    因为gcc4到gcc5的变化非常大,如果依赖的编译和Caffe的编译使用不同的编译器的话就会报

    undefined reference(未定义的引用) to XXXX

    所以最好从头到尾使用一个gcc编译器,编译opencv,cuda,caffe,以及所有依赖

    在这里给一些tip,希望后来人小心。

    1 cuda8 支持gcc5 但是cuda8以下不支持(或者说会出问题,github上有人这么说的,我没试过)

    2 ubuntu15.10,16.04通过apt-get安装的都是用gcc5编译过的软件包,在15.10之下的ubuntu通过apt-get应该默认安装gcc4编译的软件包

    3 必要的时候就去官网上下载依赖项源码自己手动编译...手动编译并不麻烦(虽然我手动编译之后都在自找麻烦)

    4 遇到问题不要百度,百度一下,真的会死!不能google就用bing,不要搜中文,注意看github和stackouflow还有google group上的问题和回答,非常有帮助!

  • 相关阅读:
    简单工厂笔记
    P3369 【模板】普通平衡树 Treap树堆学习笔记
    tp5阿里云短信验证码
    centos 安装php
    tp6.0.2开启多应用模式
    linux navicat最新版过期
    git commit之后 取消commit
    服务器重置之后ssh root@报错
    git pull push 每次都需要输入账号和密码
    跨域问题 php
  • 原文地址:https://www.cnblogs.com/fanninnypeom/p/5982719.html
Copyright © 2011-2022 走看看