一、本文的由来
对于大多数人来说,直接编译Windows版的Caffe基本就可以满足需求了。不过,对于那些想深入Caffe源码并根据自己需求进行修改的人们来说,如何用VS编译、调试Caffe代码可能有些困难,本文就是为了解决这个问题而写的。
声明:本文配置的是VS2013 x64 Release CPU版的。
二、VS2013调用Caffe步骤
简单的说,用VS2013调用Caffe其实就是用VS2013调用第三方库,因为之前具有大量VS2013配置opencv2.x与opencv3.x的经验,因此就想能不能按照类似的步骤进行配置?于是开始了一通尝试,最后果然可以!具体步骤如下
1、制作(收集)第三方库
因为本人之前已经编译过了Windows版的Caffe,所以第三方库必然已经齐全,如下图所示:
1)首先,新建文件夹“3rdParty”,并在该文件夹下再新建“bin”、“lib”和“include”三个文件夹
2)然后,依次查看上图中的每个文件夹,将每个文件夹中“dll”类型的文件复制到上述新建的“3rdParty/bin”文件中,将”.lib”类型的文件复制到“3rdParty/lib”文件中以及每个文件夹下的“include”文件夹中的文件复制到“3rdParty/include”文件中。
说明,复制文件时注意x64和x86以及Release和Debug的区别;另外,上述复制的文件有些应该是不需要的,但是为了避免出后面问题,最好全部复制过去。
2、添加内容到VS2013的“包含目录 ”、“库目录”以及“附加依赖项”等内容
其实接下来的配置方法类似于OpenCV的配置。
1)添加包含目录
新建VS工程,将上述“3rdParty/include”文件的路径添加到新建工程的“包含目录 ”中,同时将Caffe的头文件所在目录添加进去。
2)添加库目录
将“3rdParty/lib”文件的路径添加到新建工程的“库目录 ”中。
3)添加附加依赖项
将以下内容
libprotobuf.lib
hdf5_tools.lib
hdf5_hl_fortran.lib
hdf5_fortran.lib
hdf5_hl_f90cstub.lib
hdf5_f90cstub.lib
hdf5_cpp.lib
hdf5_hl_cpp.lib
hdf5_hl.lib
hdf5.lib
zlib.lib
szip.lib
opencv_world310.lib
shlwapi.lib
leveldb.lib
lmdb.lib
lmdbD.lib
libglog.lib
libopenblas.dll.a
gflags.lib
添加到新建工程的“附加依赖项 ”中。
4)添加预处理器定义
将以下内容
CPU_ONLY
_CRT_SECURE_NO_WARNINGS
_CRT_NONSTDC_NO_DEPRECATE
USE_OPENCV
添加到新建工程的“预处理器”中。
5)添加环境变量
将“3rdParty/bin”文件的路径添加到系统环境变量的PATH变量中(非常重要!!!)。
3、测试
大致步骤就是这样,如果大家有什么问题可以留言,或者直接Google、百度,应该都能解决。