首先按照 joshua_1988 的两篇博客进行依赖库的配置和工程的创建
依赖库:http://blog.csdn.net/joshua_1988/article/details/45036993
建立工程:http://blog.csdn.net/joshua_1988/article/details/45048871
在这里说一下我跟原文有一些不同的地方:
依赖库
1. 根据我的经验,一定要用vs2013,虽然joshua_1988说2012应该也行,但是我尝试的时候发现caffe有一些用到c++11标准的地方,而vs2012对11标准支持较弱,会对一些11标准新加的东西报一些错,所以我后来还是装上了vs2013。而且要先装vs2013再装cuda,否则我发现在build configuration里没有启用cuda7.0的选项。
2. OpenBLas,joshua_1988用的0.2.14 for windows的openblas,官网上也有支持win平台的包。但是下载下来以后lib文件夹里并没有.lib文件,上文joshua_1988直接用的.dll.a文件,但是我用它却不成功。最后只好下了老一些的版本0.2.8的openblas发现里边有lib文件。
3. lmdb除了下载joshua_1988提到的三个文件,我记得我还额外下了一个inttypes.h。里边是一些#define。但是在编译的时候又会对这些define报错,我最后直接保留了这个头文件但是把内容注释掉了。
4. protobuf的库,直接build所有工程经常会失败几个,其实只要分别build这三个 libproto,libprotoc,protoc工程,生成需要的lib文件就可以了。
5. 在3rdparty/lib里并没有snappy64.lib文件。joshua_1988图中的libhdf5.lib和libhdf5_hl.lib在我这儿是 hdf5.lib和hdf5_hl.lib。记得debug的lib要自己改名加上d。在3rdparty/include中我还加入了openblas的include里的头文件。还加上了hdf5中hl里的头文件hdf5_hl.h以及同一个文件夹下的配套的h文件。
建立工程
1. 把linker中的input中的libopenblas.dll.a改为.lib
2. 手动把hdf5_hl.h加到工程里。在c/c++的general里的addtional include directories里加入了3rdparty\include\openblas。
3. 最好不要加caffe目录下的test和gtest源文件,否则会报很多错,而且gtest里还有个main,跟caffe.cpp里的main冲突。
下面是我在完成joshua_1988博客内容以后遇到的问题及解决方法,基本按我自己搞得顺序。
1.