运行程明明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 ,如下图所示

运行程明明BING算法的源码时遇到的问题

4.生成解决方案,在相应目录下生成LibLinear.lib静态库,我的地址是:D:\BING\BingObjectnessCVPR14\x64\Debug

5.在解决方案页,右键Objectness,选为启动项目;

6.打开Debug属性,链接器->附加库目录,添加LibLinear.lib的目录;如下图所示:

运行程明明BING算法的源码时遇到的问题

7.配置opencv,具体配置参考:http://www.th7.cn/Program/cp/201603/773871.shtml

需要注意的几点是:一是可以配置环境变量,也可以不配置环境变量,如果配置环境变量就在系统变量Path里加入以下路径:

D:\yanxiaopan\install\inatall_opencv3.0\opencv\build\x64\vc12\bin  如果不配置环境变量,则在VS2013中配置,如下图所示:运行程明明BING算法的源码时遇到的问题

配置opencv主要有三个步骤:

一 添加包含目录,如下图

运行程明明BING算法的源码时遇到的问题

二是添加库目录,如下图,这里一开始只添加了D:\yanxiaopan\install\inatall_opencv3.0\opencv\build\x64\vc12\lib

运行程明明BING算法的源码时遇到的问题

三是添加依赖项,如下图所示:

运行程明明BING算法的源码时遇到的问题

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

运行程明明BING算法的源码时遇到的问题

错误二: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