【转】Caffe Windows版本的编译

1:Caffe的主版本只支持Linux,所以要下载专门的Caffe Windows版本,网址为

https://github.com/niuzhiheng/caffe

该版本需要的环境如下

1)Windows 64-bit

2)MS Visual Studio 2012

3)CUDA toolkit 6.5

.

2:下载VS2012和CUDA

位还是32位的),以前用VS2010感觉还不错,除了出错时候堆栈乱七八糟外。VS2012的界面我觉得是瞎折腾。

。虽然我的机器没有GPU,我想最多跑的慢点吧。直接安装,似乎没有太多问题。

3:用VS2012打开\build\MSVC目录下的MainBuilder.sln工程文件,选择”x64”,直接进行编译,提示错误:

error MSB3073:命令“set origin_dir=í%

error MSB3073: cd ../../

error MSB3073: "./scripts/GeneratePB.bat"

error MSB3073: cd %origin_dir%

error MSB3073: :VCEnd”已退出,代码为1。

查看错误位置,是预编译的命令错误()

查看“生成事件->预先生成事件->命令行”有如下的命令

set origin_dir=%

cd ../../

"./scripts/GeneratePB.bat"

cd %origin_dir%

这个是控制默认路径以及执行GeneratePB.bat批处理文件。暂时先不执行该命令,所以在“在生成中使用”选择“否”。

4:继续进行编译,会发现缺少几个开源库,所以要对这些库进行下载。

。下载需要的版本库,这里用的是Version 1.55.0。

版本

。注意要下载64位的window版本,这里用的是OpenBLAS-v0.2.8-x86_64-Win.zip

的开源。

上,我有幸采用一个国外代理,下载了https://leveldb.googlecode.com/archive/windows.zip中的windows版本,不过这个代理只成功干了这么一个活。

上,这个也是费力不少,,在百度云盘上找到一个版本:。

对所有的第三方库进行解压。

5:添加头文件include的目录

Caffe工程默认所需要的第三方文件头都统一在3rdparty\include目录,根据编译出错提示,将第三方库的头文件拷贝到include目录,第三方文件头的目录为:

1)boost_1_55_0目录下的boost目录及子目录

2)\leveldb-windows\include下的leveldb目录

3)OpenBLAS-v0.2.8-x86_64-Win的include目录

4)glog-0.3.3\src\windows下的glog目录

5)protobuf-2.5.0\src下的google目录

6:继续编译,出现错误

fatal error C1083:无法打开包括文件:“caffe/proto/caffe.pb.h”: No such file or directory。

查看\src\caffe\proto目录下只有两个文件“caffe_pretty_print.proto”和“caffe.proto”两个文件,没有caffe.pb.h文件。

还记得在开始编译的时候有个预处理的批处理文件GeneratePB.bat没有执行吗,打开这个批处理文件,内容如下:

if exist "./src/caffe/proto/caffe.pb.h" (

echo caffe.pb.h remains the same as before

) else (

echo caffe.pb.h is being generated

"./tools/protoc" -I="./src/caffe/proto" –cpp_out="./src/caffe/proto" "./src/caffe/proto/caffe.proto"

)

很明显,这个批处理文件是用protoc工具从caffe.proto生成caffe.pb.h的。

好吧,不管怎样,目前还是可以通过手动执行解决这个问题的。

7:编译protobuf-2.5.0

将生成的protoc.exe文件拷贝到\src\caffe\proto目录

用命令行方式进入\src\caffe\proto目录,

仿照批处理文件,执行命令

protoc –cpp_out="." caffe.proto

于是生成了“caffe.pb.h”和“caffe.pb.cc”文件,

,这是需要levedb的lib库了。

Leveldb windows则生成的是编译选项。将leveldb.lib拷贝到\3rdparty\lib目录中。

自信是一个人的胆,有了这个胆,你就会所向披靡!

【转】Caffe Windows版本的编译

相关文章:

你感兴趣的文章:

标签云: