编译happynear版本caffe记录

由于一些原因,需要编译caffe 的windows版本,用的是happynear的caffe版本,

一、报错找不到caffe.pb.h

如何生成 caffe.pb.h

   将protobuf 里的 protoc.exe 粘贴到 ..\src\caffe\proto里(已存在caffe.proto文件),打开控制台,输入
protoc.exe caffe.proto --cpp_out=. 

生成 caffe.pb.h 文件。

   将caffe.pb.h 文件粘贴到 ..\include\caffe\proto,重新编译,即可。

https://www.jianshu.com/p/c690cb371641

二、报错如下

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2694 “bool boost::system::error_category::std_category::equivalent(const std::error_code &,int) const”: 重写虚函数的限制性异常规范比基类虚成员函数“bool std::error_category::equivalent(const std::error_code &,int) noexcept const”少 libcaffe E:\0-project\1-facerecognition\1-code\AMSoftmax-master\AMSoftmax-master\Caffe-AM-Softmax\caffe-windows-ms\windows\thirdparty\Boost\boost\system\error_code.hpp 247

解决问题的方法见下面。

环境:

windows 7
visual studio 2015
cuda8.0
cudnn5
以下为详细操作记录

下载源码及其依赖:

https://github.com/happynear/caffe-windows

下载第三方依赖:

链接:https://pan.baidu.com/s/1d-zUOb0rWPYIy0vd2VxFBQ
提取码:qjfq

下载后解压到./windows/thirdparty文件夹下,然后把./windows/thirdparty/bins加入到环境变量中。

修改props文件

将CommonSettings.props.example更名为CommonSettings.props

修改props文件中的cuda版本和cudnn路径

  <PropertyGroup Label="UserMacros">
	    <CpuOnlyBuild>false</CpuOnlyBuild>
	    <UseCuDNN>true</UseCuDNN>
	    <CudaVersion>8.0</CudaVersion>
	    <PythonSupport>true</PythonSupport>
        <BoostIncludeFolder>$(SolutionDir)thirdparty\Boost\boost_1_61_0</BoostIncludeFolder>
        <BoostLibraryFolder>$(SolutionDir)thirdparty\Boost\boost_1_61_0\lib64-msvc-14.0</BoostLibraryFolder>
    	<HDF5Root>$(SolutionDir)thirdparty\HDF5</HDF5Root>
   		<GFlagsRoot>$(SolutionDir)thirdparty\GFlags</GFlagsRoot>
   		<GLogRoot>$(SolutionDir)thirdparty\Glog</GLogRoot>
   		<ProtobufRoot>$(SolutionDir)thirdparty\Protobuf</ProtobufRoot>
   	 	<ProtocDir>$(ProtobufRoot)\bin\</ProtocDir>
   		<OpenCVRoot>$(SolutionDir)thirdparty\OpenCV</OpenCVRoot>
   		<LMDBRoot>$(SolutionDir)thirdparty\LMDB</LMDBRoot>
   		<OpenBLASRoot>$(SolutionDir)thirdparty\OpenBLAS</OpenBLASRoot>
   		<LevelDBRoot>$(SolutionDir)thirdparty\LEVELDB</LevelDBRoot>
   		<NCCLRoot>$(SolutionDir)thirdparty\NCCL</NCCLRoot>
        <CudaArchitecture>compute_52,sm_52;compute_61,sm_61;</CudaArchitecture>
    	<!-- CuDNN 3 and 4 are supported -->
    	<CuDnnPath>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0</CuDnnPath>
    	<ScriptsDir>$(SolutionDir)\scripts</ScriptsDir>
  </PropertyGroup>

注意:boost三方库要使用版本boost_1_61_0下的。
编译boost1.61是这么来的,从这里下载
在这里插入图片描述

下载boost1.61后需要先编译,打开vs2015 x64本机工具命令提示符,然后进入boost目录,输入:

注意:boost会默认编译32位库,要编译64位库需要添加address-model=64 参数:

bootstrap.bat
.\b2
.\b2 address-model=64

编译完成之后,把props中的下段:

<BoostIncludeFolder>$(SolutionDir)thirdparty\Boost</BoostIncludeFolder>
<BoostLibraryFolder>$(SolutionDir)thirdparty\Boost\lib64-msvc-14.0</BoostLibraryFolder>

路径修改为boost1.61的路径

    <BoostIncludeFolder>$(SolutionDir)thirdparty\Boost\boost_1_61_0</BoostIncludeFolder>
    <BoostLibraryFolder>$(SolutionDir)thirdparty\Boost\boost_1_61_0\lib64-msvc-14.0</BoostLibraryFolder>

编译libcaffe

然后编译libcaffe即可成功.

再编译caffe

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页