用vs2013创建caffe工程

caffe C++接口使用配置

含caffe源码的配置方式(CPU only)

  • 首先使用源码按照官方的方式编译Debug版Caffe【官方参考】,我们需要编译后所生成的如下文件:
    • caffeproto-d.lib
    • caffe.pb.h
      > 注:因为编译caffe时的依赖文件很难下载,所以这里给出了百度网盘的分享链接,下载完成之后放在C盘下当前用户的文件夹中(以我的机器为例:C:\Users\HJiahu\.caffe\dependencies\download\libraries_v140_x64_py35_1.1.0.tar.bz2
  • 编译完caffe后将install文件夹下的include文件夹复制出来与caffe源码(位于根目录中src目录下)一起放在同一个文件夹caffe_src下(这样做是为了方便。只有编译后的include文件夹下才有caffe.pb.h文件)。caffe_src的结构如下:

    - caffe_src 
        - include
            - caffe
                - layers
                - proto
                    - caffe.pb.h
                - util
                ...
        - src
            - caffe
                - layers
                - solvers
                - util
                ...
  • 创建vs控制台空项目(注意将解决方案平台设置为x64,而不是x86),将上面caffe_src中所有的代码都添加当前项目中(注意:所有代码包含子目录中的代码,为了方便可以在项目中添加新的筛选器,便于文件的管理)。
  • 将对应的依赖文件添加到项目中
    • 依赖的头文件
      • I:\learn_caffe\learn_caffe\caffe_src\include,这个就是上面提到的从install文件夹中复制出来的include目录
      • C:\***\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\include,这个和下面的内容源于编译caffe时自动下载的依赖包。
      • C:\***\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\include\boost-1_61
    • 在预处理定义中添加如下内容

          CPU_ONLY
          _SCL_SECURE_NO_WARNINGS
          _CRT_SECURE_NO_DEPRECATE
          _CRT_NONSTDC_NO_DEPRECATE
                          USE_LMDB
                          USE_OPENCV
    • 库目录(将上面提到的caffeproto-d.lib也复制到下面的文件夹中)
      • C:\***\.caffe\dependencies\libraries_v140_x64_py35_1.1.0\libraries\lib
      • 为了方便,我使用我自己编译的opencv库,因为只要添加一个库就好:opencv_world320d.lib,同样要把对应的库文件夹添加到项目中。
      • 所有依赖库文件如下所示(其实我并不知道哪些是必须的所以就把能加的都加上去了):

        caffeproto-d.lib
        opencv_world320d.lib
        boost_chrono-vc140-mt-gd-1_61.lib
        boost_date_time-vc140-mt-gd-1_61.lib
        boost_filesystem-vc140-mt-gd-1_61.lib
        boost_system-vc140-mt-gd-1_61.lib
        boost_thread-vc140-mt-gd-1_61.lib
        boost_timer-vc140-mt-gd-1_61.lib
        libopenblas.dll.a
        caffehdf5_D.lib
        caffehdf5_cpp_D.lib
        caffehdf5_hl_D.lib
        caffehdf5_hl_cpp_D.lib
        caffezlibd.lib
        caffezlibstaticd.lib
        gflagsd.lib
        glogd.lib
        leveldbd.lib
        libboost_chrono-vc140-mt-gd-1_61.lib
        libboost_system-vc140-mt-gd-1_61.lib
        libboost_timer-vc140-mt-gd-1_61.lib
        libcaffehdf5_D.lib
        libcaffehdf5_cpp_D.lib
        libcaffehdf5_hl_D.lib
        libcaffehdf5_hl_cpp_D.lib
        libprotobufd.lib
        libprotocd.lib
        lmdbd.lib
        snappy_staticd.lib
        snappyd.lib
                        ntdll.lib  
  • 在编译的时候系统会提示无法打开lib*.lib文件,我的系统中主要是boost中的一些lib。其实这些lib在文件夹中是存在的只是命名的方式不对。将库文件夹中对应的lib文件前面加上lib三个字母就可以了。例如我的系统中提示找不到boost_thread-vc140-mt-gd-1_61.lib,在同一个文件夹中创建一个副本并重新命名为libboost_thread-vc140-mt-gd-1_61.lib就行了。
  • 添加一个main函数后就可以一步一步调试caffe代码了(我直接从源代码tools文件夹中把caffe.cpp复制出来作为调试入口文件)。

不含caffe源码的配置方式(仅使用caffe的头文件 CPU only)

编译caffe (这里编译release版)

  • 编译caffe,可参考官方文档

    配置vs2013

  • 配置当前项目为Release x64
  • 包含目录为

    G:\caffe_rel\build\libraries\include\boost-1_61
    G:\caffe_rel\build\libraries\include
    G:\caffe_rel\build\install\include
  • 库目录为

    G:\caffe_rel\build\lib
    G:\caffe_rel\build\libraries\lib
    C:\CNNs\opencv_with_world\x64\vc12\lib
  • 添加两个预处理宏

    USE_OPENCV
    CPU_ONLY
  • 附加库为

    opencv_world310.lib
    gflags.lib
    glog.lib
    libprotobuf.lib
    libprotoc.lib
    caffe.lib
    proto.lib
  • 与上同,修改boost_thread-vc120-mt-1_61.lib等文件的名称

不含caffe源码的配置方式(仅使用caffe的头文件 GPU cuda&cudnn)

先使用官网提供的方法编译caffe
下面的库需要加入到vs2013中

opencv_world320d.lib
caffe-d.lib
caffeproto-d.lib
libprotobufd.lib
libopenblas.dll.a
gflagsd.lib
glogd.lib
cublas.lib
cuda.lib
cudnn.lib
cudart.lib
curand.lib
caffehdf5_D.lib
caffehdf5_hl_D.lib
caffezlibd.lib
libboost_thread-vc140-mt-gd-1_61.lib (如果是vs2013的话这里是120,具体boost库的名称要按照编译器的提示添加)

转载于:https://www.cnblogs.com/jiahu-Blog/p/6423962.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值