win10下利用cmake和vs重新编译opencv源码

最近本人在啃《学习OpenCV3》这本书,在“跨平台与Windows系统”这一章节中,书上提到编译OpenCV时,在cmake选项中,勾选WITH_QT则可以使用基于Qt的GUI模块,相比OpenCV自带的highgui功能更强;但在我实际操作之后,发现有关如何使用win10 + visual studio 2017 + cmake实现上述操作的文章很少,而且不少还存在错误,在经历了一天的折腾终于摸清这当中的操作之后,决定写篇博客记录一下自己方法,给有需要的人一个参考。

 

环境:

  1. Windows10
  2. Visual Studio 2017
  3. OpenCV3.4.3
  4. Qt5.9.6
  5. cmake-gui

我电脑上OpenCV的安装位置是“C:/OpenCV/opencv”,首先,在“C:/OpenCV”下新建一个文件夹,命名为rebuild,稍后将在这个文件夹内重编译OpenCV。

接下来,打开cmake,点击browse source,选择“C:/OpenCV/opencv/source”文件夹。

之后,选择browse build,选择“C:/OpenCV/rebuild”文件夹。

再然后,点击右下角的configure,选择visual studio 15 2017 Win64(此为64位编译器)点击finish,等待进度条跑完,最后结果如下。

 红色部分就列出了我们在编译时可以选择的选项,这里我们将WITH_QT和WITH_OPENGL打开,在search一栏内输入想要找的选项即可。

 之后,再次点击configure,直到没有红色的选项,代表所有环境都正确安装,配置没有错误;然后,就可以点击generate生成工程了。

工程生成完成之后,点击open project,cmake会自动用visual studio打开这个工程,在VS内打开解决方案资源管理器,找到ALL_BUILD和INSTALL两个项目:

先右键ALL_BUILD,单击生成,让电脑飙一会:

等电脑安静下来以后,右键INSTALL这个项目,单击生成,这一步不需要耗时很久。

接下来回到刚刚的rebuild文件夹,找到这个install文件夹,里面的东西就是我们这一趟折腾下来的成果:

文件夹打开以后,里面的东西是这样的:

 把里面的东西复制出来,粘贴到原来的OpenCV环境的build目录下,在我的电脑上是“C:/OpenCV/opencv/build”,替换掉原来的文件,之后rebuild文件夹内的东西就都可以删了(至少这么操作我没有遇到任何问题,有一些教程表示这些文件应该保留)。

之后就是配置VS内的解决方案属性了,VC++目录——包含目录 & VC++目录——库目录的设置还是和以前一样,不用改,需要修改的是链接器——输入——附加依赖项,改为以下内容:

opencv_calib3d343d.lib
opencv_core343d.lib
opencv_dnn343d.lib
opencv_features2d343d.lib
opencv_flann343d.lib
opencv_highgui343d.lib
opencv_imgcodecs343d.lib
opencv_imgproc343d.lib
opencv_ml343d.lib
opencv_objdetect343d.lib
opencv_photo343d.lib
opencv_shape343d.lib
opencv_stitching343d.lib
opencv_superres343d.lib
opencv_video343d.lib
opencv_videoio343d.lib
opencv_videostab343d.lib

简单来讲就是把“C:/OpenCV/opencv/build/x64/vc15/lib”目录下所有.lib文件的文件名打一遍(原来的opencv_world343d.lib除外)

到这一步,我们就可以按下神圣的F5了:

 相信大家都学会了,赶快回家敲键盘吧!

猜你喜欢

转载自blog.csdn.net/weixin_41429999/article/details/83018823