运行程明明BING算法的源码时遇到的问题
我的环境是win7 64位操作系统+VS2013+opencv3.0.0
参考 :
https://www.cnblogs.com/larch18/p/4560690.html
https://blog.****.net/sgfmby1994/article/details/78480444
程明明BING算法源码是在64位编译器下的(在VS2013中32位操作系统可以使用32位编译器Win32,64位操作系统可以使用32位编译器Win32或64位操作系统x64),我这里使用64位编译器。
步骤:
1.在解决方案页,右键LibLinear,选为启动项目;
2.在linear.cpp文件中,修改print_string_stdout函数为:extern “C” static void print_string_stdout(const char *s)
3.选择Debug x64 ,如下图所示
4.生成解决方案,在相应目录下生成LibLinear.lib静态库,我的地址是:D:\BING\BingObjectnessCVPR14\x64\Debug
5.在解决方案页,右键Objectness,选为启动项目;
6.打开Debug属性,链接器->附加库目录,添加LibLinear.lib的目录;如下图所示:
7.配置opencv,具体配置参考:http://www.th7.cn/Program/cp/201603/773871.shtml
需要注意的几点是:一是可以配置环境变量,也可以不配置环境变量,如果配置环境变量就在系统变量Path里加入以下路径:
D:\yanxiaopan\install\inatall_opencv3.0\opencv\build\x64\vc12\bin 如果不配置环境变量,则在VS2013中配置,如下图所示:
配置opencv主要有三个步骤:
一 添加包含目录,如下图
二是添加库目录,如下图,这里一开始只添加了D:\yanxiaopan\install\inatall_opencv3.0\opencv\build\x64\vc12\lib
三是添加依赖项,如下图所示:
opencv3.0.0主要添加opencv_ts300d.lib 和opencv_world300d.lib这两个库
遇到的问题:
错误一:Link error :无法打开opencv_core300d.lib
解决方法:在附加库目录中加入D:\yanxiaopan\install\inatall_opencv3.0\opencv\build\x64\vc12\staticlib
错误二:error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“MTd_StaticDebug”
解决方法:引用的是静态库,调试的是动态库MDd,也改成MTd即可
参考:https://blog.****.net/henry_wu001/article/details/51721705
错误三:error LNK2005: __iob_func 已经在 LIBCMTD.lib(_file.obj) 中定义 D:\BING\BingObjectnessCVPR14\Objectness\MSVCRTD.lib(MSVCR120D.dll) Objectness
解决方法:项目属性-配置属性-链接器-输入-忽略特定的库:libcmtd.lib
参考 https://blog.****.net/stoneboy100200/article/details/8216257