6.0默认的就是Debug版本。在Debug版本中,可以使用单步执行、跟踪等功能,但其生成的可执行文件比较大,代码运行比较慢。Release版本就是发行版本,其运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能。
还有一点,Release版本的exe文件链接的目标是标准的MFC DLL(Use MFC in a shared
or static
dll)。比如MFC42.DLL。这些DLL在安装windows的时候,就会装到系统中。因此,这样的exe在没有安装Visual C++
6.0的机器上也能运行。而Debug版本的exe链接了调试版本的MFC DLL文件,比如MFC42.DLL。在没有安装Visual C++
6.0的机器上不能运行,因为缺少MFC42D.DLL等,除非选择use static dll when link。
Debug版本中包含大量的调试信息,所以我们能够单步执行、Watch表达式等等,而release版本仅包含我们的代码。由于要利于程序的测试,Debug版本的程序附带很多测试信息和测试程序时才需要的代码,所以Debug版本的程序需要VC的Debug(注意这里不是指程序的Debug,而是指VC的调试器)才能运行。而Release版本就不具有这些特性,所以在Release版本的程序上不能做调试!打包就相当于将你制作的东西发布出去,应该是优化过的代码,当然要用发布版本,即Release版本。
两者所用的动态连接库是不一样的,Release版本所需要的dll和lib已经包含在Windows的system(或者system32)下,所以只需要拷贝就可以运行了,但是Debug版本需要的dll和lib是在安装vc时装上去的,如果你想直接将debug版本给用户,需要拷贝几个文件,但这样显得很臃肿,一般来说不可取。
Qt5.7.1
CMake 3.10.2
opencv-3.3.0-vc14
右键“我的电脑”——属性——高级系统设置——环境变量,我的路径是C:\Qt\Qt5.7.1\Tools\mingw530_32\bin,如图所示
打开CMake,设置源码的路径和输出路径,然后点击Configure,选择如所示
Next,配置c和c++,我的路径如下
点击Finish,等待加载完毕,暴很多红项
在Search框内搜索WITH_QT和WITH_OPENGL,都打上勾,再点击Configure
此时还有这几项是红的,点击ADD Entry,添加“QT_MAKE_EXECUTABLE”,并选择qmake的路径如图所示
在Search搜索CMAKE_BUILD_TYPE,修改value成 Release 或RelWithDebInfo
再次点击Configure,然后点击Generate
打开cmd命令提示符,进入输出文件夹并编译
这里的8根据自己电脑配置而定,8核cpu 我这里填8
如果编译过程中出现类似这样的错误:
解决办法:在CMake搜索ENABLE_PRECOMPILED_HEADERS,把这个项的打勾去掉,然后点Configure,Generate,再执行编译:ming32-make -j 8
如果遇到类似这样的错误
解决办法:根据提示的路径去opencv源码文件找cap_dshow.cpp文件,我的在D:\tmp\opencv\sources\modules\videoio\src文件夹里,用记事本打开cap_dshow.cpp,搜索
然后在上面添加
再次执行编译:ming32-make -j 8
方法同上,把D:\tmp\opencv-build\install\x86\mingw\bin添加到path里
打开Qt,新建一个项目,Qt Widgets Application
调试
如果出现错误:
解决办法:点击左侧的项目,填好构建目录,如图所示:
修改.pro文件,添加
这里需要注意一下330,有些版本是320
修改完后,点击构建 ,执行qmake
修改mainwindow.cpp
效果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)