@author:oneBite
本文记录编译使用caffe for windows
使用环境
VS2013 ultimate,win7 sp1,caffe-windows源码(从github上下载caffe的windows分支,下载解压之后,不要改变原有的目录结构,因为solution rebuild时会使用文件的相对路径)
编译过程
根据需要修改caffe-windows\caffe-windows\windows\CommonSettings.props。本次编译生成不使用GPU和CuDNN的caffe。
<CpuOnlyBuild>true</CpuOnlyBuild>
<UseCuDNN>false</UseCuDNN>
使用vs2013打开caffe-windows\caffe-windows\windows\****.sln文件(这是VS2013创建的工程),rebuild solution,之后程序会自动下载相应的依赖包。
依赖包简要叙述:proto用于解析参数;boost,c++准标准库,智能指针……
之后vs会报错:
错误1:error LNK1104: cannot open file ‘libcaffe.lib‘
因为project之间有依赖关系,需要手动先编译libcaffe工程
错误2:error C1083: Cannot open source file: ‘..\..\src\caffe\data_reader.cpp‘
项目引用了已经不存在的源文件,只要在项目include和src中删除data_reader的索引即可。
错误3:error C2220: warning treated as error - no ‘object‘ file generated (..\..\src\caffe\util\math_functions.cpp)。
双击该error,显示详细错误信息。发现是源文件character问题。复制文件内容,重新创建如下路径的文件。
\caffewindows\NugetPackages\boost.1.59.0.0\lib\native\include\boost\format\altsstream_impl.hpp
解决error之后,rebuild solution。然后运行caffe项目中的caffe.cpp。就可以看到如下界面。
(可以先设置solution的启动项目)
调整设置启动项目
解决方案>properties>startup project>current project
能正确运行之后,可以设置不要重复下载依赖包。
Tools>option中设置nuget package manager,在build时,是否可以download missing files