windows-caffe下新建项目

从gitub上fork下来的windows-caffe的项目,我想基于windows-caffe开发一个小项目,使用VS2013编译,平台的配置过程如下
1、在caffe解决方案下新建一个项目

2、项目属性改为Release,x64

3、菜单栏=>工具=>Nuget程序包管理器=>管理解决方案的Nuget程序包,然后出现Nuget包管理界面,选择相应的包,=>管理,在相应的项目上打钩。这一步使用Nuget工具为项目添加openblas、opencv、boost等库。

4、设置头文件路径
项目-> 属性 -> 配置属性 -> VC++目录 -> 包含目录
C:\caffe-master\include

5、设置库文件路径
项目-> 属性 -> 配置属性 -> VC++目录 -> 库目录
C:\caffe-master\Build\x64\Release

6、设置库输入(这一步能防止无法解析的外符号错误)
项目-> 属性 -> 配置属性 -> 链接器 -> 输入 ->附加依赖项

libboost_date_time-vc120-mt-1_59.lib
libboost_filesystem-vc120-mt-1_59.lib
libboost_system-vc120-mt-1_59.lib
libglog.lib
libcaffe.lib
gflags.lib
gflags_nothreads.lib
hdf5.lib
hdf5_hl.lib
libprotobuf.lib
libopenblas.dll.a
Shlwapi.lib
opencv_core2410.lib
opencv_highgui2410.lib
opencv_imgproc2410.lib
LevelDb.lib
lmdb.lib
opencv_video2410.lib
opencv_objdetect2410.lib

7、项目 -> 属性 -> 配置属性 -> C/C++ -> 预处理器 -> 预处理器定义 -> CPU_ONLY

8、项目 -> 属性 -> 配置属性 -> C/C++ -> 常规 -> 将警告视为错误 -> 否

dll问题
解决方案:去C:\caffe-master\Build\x64\Release复制相应的dll文件到项目文件夹下x64目录里

Unknown layer type问题
Unknown layer type
解决方案:
新建一个头文件,例如head.h,将他提示你没有的层的头文件包含进去,在添加类似于
extern INSTANTIATE_CLASS(InputLayer);//引用外部libcaffe编译单元的层的声明
REGISTER_LAYER_CLASS//注册layer,如果注册过该层,则不需要这行代码

解决方案
如果是单启动项目,那么在你重新生成解决方案的时候,只会运行单启动项目,其它项目不会运行,这就是为什么很多人编译以后发现Release或者Debug文件夹下只有caffe.exe而没有conver_imageset.exe等可执行文件的原因。

扫描二维码关注公众号,回复: 2557944 查看本文章

Nuget工具使用
在VS2013中,菜单栏=>工具=>Nuget程序包管理器=>管理解决方案的Nuget程序包,然后出现Nuget包管理界面,选择相应的包,点击管理,在相应的项目上打钩。之后发现,项目下多出一个package.config文件,文件内容是导入项目的包名。

无法解析的外部符号问题
原因都是链接器没有找到函数符号,要在项目属性页的链接器输入中,填写相应的lib,其中debug和release是不同的。release下的lib如上述第6步贴出的所示。

猜你喜欢

转载自blog.csdn.net/chifredhong/article/details/71574206