您当前的位置: 首页 >  ar
  • 0浏览

    0关注

    483博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Happynear Caffe + vs2015 + protobuf3.1 problem

高精度计算机视觉 发布时间:2018-10-05 14:52:38 ,浏览量:0

Happynear Caffe + vs2015 + protobuf3.1

visual studio 版本问题: MicrosoftCaffe supports only visual studio 2013 Caffe(HappyNear) supports visual studio 2015 我这里使用visual studio 2015

因为有个项目protobuf3.1冲突,重新编译HappyNear的Caffe + visual studio 2015 + protobuf3.1

关于如何编译caffe+vs2015, 建议参考Caffe+Visual Studio 2015编译可以有多简单?,我这里只记录自己碰到的其他问题。

原地址:https://github.com/happynear/caffe-windows

不使用cuda,项目libcaffe无法加载的问题

在commonSettings.props中设置不使用cuda之后,保存,重新启动vs2015,重新加载,多来两次,就能加载成功,否则会一直报错:没有cuda8.0blablabla…

我的配置如下,

true    
false    
false    
false    
8.0    

true

    

false    
true
    

特别注意:这个
cufft.lib
要改成

否则
$(CudaDependencies)会报错找不到依赖cufft.lib

这两个可以开通,没有影响

    true
    true

但是,如果没有安装matlab, 就不要使用matlabsupport,否则会提示无法找到mex.h而通不过编译

特别注意,不使用cuda时:这个 cufft.lib 要改成 否则 $(CudaDependencies)会报错找不到依赖cufft.lib

无法打开文件“python36_d.lib”

2>------ 已启动生成: 项目: pycaffe, 配置: Debug x64 ------ 2> PythonPreBuild.cmd : Create output directories for python scripts. 2> PythonPreBuild.cmd : Create dummy init.py file 2> PythonPreBuild.cmd : Generating src\caffe\proto\caffe.pb.h with python bindings 2>LINK : fatal error LNK1104: 无法打开文件“python36_d.lib”

解决办法:compile python3.6.5 on windows and copy this file to the relevant location,

自己编译一下python3.6.5,拷贝python36_d.lib到anaconda3目录下即可

e.g. D:\Anaconda3\libs\python36_d.lib

注意用visual studio 2015打开pcbuild.sln即可完成编译,我的路径是 E:\APython\Python-3.6.5\PCbuild

我是把debug和Release都自己编译了,可以灵活应用。如果不想编译,去找一下直接用编译好的binary应该也可以。

去掉将警告视为错误,否则诸多项目无法通过

所有的项目都要去掉这个设置,属性==>C/C++ > setting>将警告视为错误 ==> No

取决于你的需要,这些项目包括:

test.all

pycaffe.

caffe.binding

caffe.binding,这里还要改成dll动态库

另外caffe.binding,这里还要改成dll动态库,不要用exe应用程序(我的默认是exe,奇怪了),否则会提示找不到这个*.dll:

例如我的情况是:

E:\Caffehappynear\caffe-windows-ms\windows…\Build\x64\Debug\caffe.binding.dll

Protobuf3.1

因为我的Caffe要支持其他项目的protobuf3.1,出现protobuf冲突。所以我改成了protobuf3.1。

编译本机Protobuf3.10的位置

我的本机位置在 E:\general\protobuf-3.1.0\dev\protobuf.sln 编译完成后将相关文件拷贝到caffe-windows-ms/windows/third_party下面即可

HAVE_LONG_LONG

happynear默认使用protobuf3.0, 如果改成3.1 (for eco visual object tracking)

在type_traits.h中,下面的代码要注释掉,否则会报错
//#ifdef HAVE_LONG_LONG
//template struct is_integral : true_type { };
//template struct is_integral : true_type { };
//#endif

参考

https://github.com/protocolbuffers/protobuf/pull/2203

https://github.com/protocolbuffers/protobuf/issues/2202

Protobuf3.1静态编译

如果要编译静态库(一般情况下,应该使用静态库),就要去掉__declspec前缀,此时所有项目,都必须去掉PROTOBUF_USE_DLLS(这个是DLL必须的,参考readme.md from here) 也就是说,下面这些项目, libprotobuf / libprotobuf-lite / libprotoc / protoc.exe C\C++预编译选项中要去掉:PROTOBUF_USE_DLLS

关注
打赏
1661664439
查看更多评论
立即登录/注册

微信扫码登录

0.0377s