ubuntu eclipse下生成caffe的C/C++ classification工程

来源:互联网 发布:阿里云邮箱账号找回 编辑:程序博客网 时间:2024/05/29 17:03

基本环境:ubuntu16.04 CUDA和cnDNN正确配置安装   caffe编译成功


1、ubuntu下eclipse+jdk配置

可参考我的另外一篇博客

http://blog.csdn.net/qq_34654240/article/details/78686883


2、opencv的安装配置

安装可参考我的opencv安装http://blog.csdn.net/qq_34654240/article/details/78625728

opencv的配置:

进入终端: 输入

cd  /etc/ld.so.conf.d/

ls

查看是否存在Opencv.conf

如果存在说明配置成功,如果不存在,可进行如下操作

sudo    vim    /etc/ld.so.conf.d/Opencv.conf

然后将opencv的so路径写进去,一般是/usr/local/lib

然后再执行sudo ldconfig进行应用


3、创建eclipse工程

     a、启动eclipse,新建C++工程,File ->New ->C++ project,选择一个空的Linux GCC工程并起个名字,如下图所示:

     

在工程中先添加源文件File->New->Source File,如下图所示:

     

    b、caffe以及依赖文件的配置(重点)

     首先是头文件的配置:

      Project -> Properties ->C/C++ Build -> Settings ->GCC C++ Compiler -> Includes - >Include paths(-I)

      将用到的opencv的以及caffe还有cuda的头文件进行加载

    

   依赖库文件配置:

    Project -> Properties ->C/C++ Build -> Settings ->GCC C++ Linker -> Libraries

    将opencv以及caffe的依赖进行配置

  

   共享对象库的配置:

   Project -> Properties ->C/C++ Build -> Settings ->GCC C++ Linker -> Miscellaneous,在Other Objects中添加程序所需的共享对象库

  

  c、开始编译程序

    添加完头文件和库文件,就可以开始编译程序了:Project->Build Project,如果一切顺利,编译过程不会报错,最多有几个warning;如果有错,可以参看后文的常见错误总结

 

  d、测试classification

   修改部分代码:

  将

  string model_file   = argv[1];

  string trained_file = argv[2];

  string mean_file    = argv[3];

  string label_file   = argv[4];

  string file = argv[5];

  分别更改为自己的文件路径

  string model_file   = "/home/tensor/caffe/models/bvlc_reference_caffenet/deploy.prototxt";
  string trained_file = "/home/tensor/caffe/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel";
  string mean_file    = "/home/tensor/caffe/data/ilsvrc12/imagenet_mean.binaryproto";
  string label_file   = "/home/tensor/caffe/data/ilsvrc12/synset_words.txt";
  string file = "/home/tensor/caffe/examples/images/cat.jpg";


   将if (argc != 6)改为if (argc != 1)

   直接运行程序,出现下面界面说明运行成功


常见错误总结

最后的最后,博主总结了网上和自己配置中常见的各种错误,以供参考,如出现新的错误类型也会跟新在博客中。

Error1:/usr/include/boost/system/error_code.hpp:222:‘boost::system::generic_category()' 未定义的引用

错误原因,没有在/usr/local安装boost库,请参考http://blog.csdn.net/jesse_mx/article/details/65631763?utm_source=itdadao&utm_medium=referral

进行安装,并添加相应路径。

Error2: 'cublas_v2.h: No such file or directory'

错误原因,没有添加cuda的头文件和库文件,添加了就不会报错。

Error3:**undefined reference to symbol '_ZN6google4base21CheckOpMessageBuilder7ForVar2Ev'

错误原因,程序找不到glog和gflags库,所以应该安装这两个库,并添加其路径。

Error4:/usr/lib/x86_64-linux-gnu/libglog.so.0: error adding symbols:DSO misssing from command line

错误原因,没有添加正确的glog共享对象库,应该在Miscellaneous->Other Objects中添加/usr/local/lib/libglog.so,同时Libraries(-I)中添加glog。

Error5:error while loading shared libraries :libcaffe.so.10.0-rc3:cannot open share

错误原因,缺失libcaffe.so.1.0.0-rc3库或者没有设置共享库路径,如果caffe中存在这个库,那么可以这样做:

cd /etc/ld.so.conf.d
sudo gedit caffe.conf
# 打开的的conf文件加入/home/mx/caffe/.build_release/lib,保存退出
sudo ldconfig