https://github.com/BVLC/caffe/tree/windows
Python的版本只支持python2.7 或者 python3.5
conda create -n Caffe_3_5 python=3.5.3
然后将新创建的虚拟环境添加到Path环境变量:
C:\ProgramData\Anaconda3\envs\Caffe_3_5
C:\ProgramData\Anaconda3\envs\Caffe_3_5\Scripts
修改scripts\build_win.cmd文件中的配置
主要修改如下
Debug版和Release版通过修改build_win.cmd 第 81 行就可以了。
如果系统中有多个版本的python,为了找到正确版本的python,可尝试下面几个方法
1.参考build_win.cmd文件的29行设置PATH
2.caffe\build>cmake -DPYTHON_EXECUTABLE=”C:\Users\MYNAME\Anaconda3\python.exe” ..
命令行中执行下面的命令
.\script\build_win.cmd
编译以后刚才强调的将第99行 RUN INSTALL 设置成1,在build/install/bin 目录下就会生成
指定protobuf版本
在上面的编译过程中会链接很多第三方库,这些库如果没有下载过会自动下载,一般下载过程都比较慢,所以会手动下载然后放到指定的目录中,libraries_v140_x64_py35_1.1.0
protobuf就在这个库里面
如果需要使用其它版本的库就需要把自己编译出protobuf的库来替换这里的所有protobuf相关。
我在替换后再编译caffe的时候遇到了
mismatch detected for ‘RuntimeLibrary’: value ‘MT_StaticRelease’ doesn’t match value ‘MD_Dy namicRelease’
的问题,这个跟vs的设置有关
caffe编译使用的是命令行,没法指定,可以在编译protobuf的时候指定,他们两个指定成相同的方式就可以了。
遇到的问题
1.在外部工程加入caffe头文件和库之后编译出现caffe.pb.h(3045): error C2059: syntax error: ‘constant’
解决办法:增加预处理宏 NO_STRICT
2.在其它工程中引用caffe,编译的时候还是会出现很多问题
解决办法:打开caffe.sln将预处理宏都拷到需要使用的工程中。