现在的位置: 首页 > 综合 > 正文

OpenCV在vc6.0环境编译,可进入调试

2018年02月12日 ⁄ 综合 ⁄ 共 964字 ⁄ 字号 评论关闭

进入安装OpenCV路径,进入_make文件,看到了opencv.dsw 和 opencv.sln (不是opencv_directshow.dsw,它不包含cvaux.h), 前者在vc6.0版本编译,后者在vs2005中编译。
选择Win32 Debug进行编译,这一点我刚开安装时,一直没在意,自己的vc6.0软件环境有很多编译版本,什么i7等很多,导致了我编译一直没有成功,这是原因之一;
编译过程中有一个很语法错误,这是源码中自带的错误,这个我一直还没注意,怪不得没编译成功。也主要是要编译的文件比较多,还没分析好,这是没有成功的最重要原因。
链接:
粘贴:

据说这是个古老的bug

在cvaux.h文件中,

搜索关键字foreground_regions,

第1137行
CvMemStorage* storage; /*storage for 揻oreground_regions?/ \
CvSeq* foreground_regions /*foreground object contours*/

改为如下形式:

CvMemStorage* storage; /*storage for foreground_regions*/ \
CvSeq* foreground_regions /*foreground object contours*/

这样错误就消失了.开源的果然有bug呀.真是需要不断探索了

而且每一行后面的这些"\"是表下一行是上一行的接续.如

define可以替代多行的代码,例如MFC中的宏定义(非常的经典)

#define MACRO(arg1, arg2) do { \
/* declarations */ \
stmt1; \
stmt2; \
/* ... */ \
} while(0) /* (no trailing ; ) */
关键是要在每一个换行的时候加上一个"
\"

哎, 都古老错误了,我还没注意到!

但是选择Rebuild All时,不知怎回事,highgui的动态链接库没有生成功。直接只对该类重新编译了,有了,至此都编译成功。终于可以进入调试了。

另外,如果你拷贝到了其他路径来完成的编译,当然要在vc6.0中指明库文件放置地方。

环境变量也要更改bin文件所在的路径。

抱歉!评论已关闭.