opencv入门(一)----opencv(4.5.5)编译

曾几何时也研究过opencv,不过主要还是在python在使用,最近有c++项目需要,可能用到opencv,所以先来编译一个。

在c++的世界中,最常用的编译器估计也就是三个,gcc(mingw[win])、msvc[win]、clang,其中前两个是大头(错了勿喷),最近也在mingw和msvc中两边走,但麻烦的是,mingw生成的dll和msvc生成的dll是不通用的(估计常搞c++的人都知道这回事)!所以如果想在msvc下编译程序的,还是得在msvc下编译库,同理在mingw下编译程序,也是得在minggw下编译。

题外话:最近发现vcpkg也挺不错了(据说还有很多相关的,不过很少用),不想编译的小伙伴可以直接整个vcpkg,vcpkg可以直接整合到vs c++工程里面哦,这样连环境都不用配置了,不过vcpkg中的一般不是最新版本,想要最新版的需要跟着下面做了。

cmake+msvc(2019)

cmake创建工程

opencv入门(一)----opencv(4.5.5)编译_第1张图片

我自己创建了一个build文件夹,用来放置Generate的vs工程,然后点击Configure。弹出下面窗口。

opencv入门(一)----opencv(4.5.5)编译_第2张图片

选择vs2019编译器和x64,因为我电脑中只有vs2019,我的后续工程都是64位的,所以选择x64。

Finish后,会自己Configure,在build文件夹下已经存在相关文件。Configure过程中,会出现一些下载不到的压缩包或者库(没有下载的会导致下图出现红底黑字,所以包都处理好后,会变成白底黑字。),可以根据实际情况去下载,再放到build\3rdparty,具体下载不到的可以看build文件夹中的CMakeDownloadLog.txt文件,根据里面内容将对应的东西下载下来,放到相关的文件夹中即可。

opencv入门(一)----opencv(4.5.5)编译_第3张图片

 里面有很多附带的不是必需的,可以根据实际情况进行配置,配置好后,再Configure即可。

我根据自己的需求,修改了以下两处,选中BUILD_opencv_world,可以生成单个dll(不选上会生成N个dll,不方便后期使用);我以添加了opencv-contrib,opencv-contrib需要另外下载,配置好后,点击Configure。

根据实际情况你可以需要多次"配置->Configure",以达到实际需要。

opencv入门(一)----opencv(4.5.5)编译_第4张图片

 没有了红底后,就可以Generate.(我之前试过有红底黑字的情况,即使Generate出来,编译时还是会报错,可能是有解决方法,但是对cmake不熟悉,有大神了解的请指导一下!)

 opencv入门(一)----opencv(4.5.5)编译_第5张图片

 到此VS c++工程已经创建好了。

-----路过----路过----路过----路过----路过----路过----路过----路过----路过----路过----路过----路过------

vs2019编译工程

进入build文件夹,打开OpenCV.sln

opencv入门(一)----opencv(4.5.5)编译_第6张图片

vs默认选中ALL_BUILD,可以直接对Solution进行Build即可,但是由于一开始我选择了x64(如下图),如果不是使用64位的,最重头来过哦。x64下有Debug|Release两个选项,可以先对Debug进行编译,再对Release进行编译。

下面可以进行Build了。

....................

........................................

............................................................

................................................................................

....................................................................................................

经历了不知道多久,我build失败了,原因是硬盘空间不足,本来以为16G应该可以了,但是原来是不够的,所以建议大家起码有个20~30G才能编译!

  • 错误1:我的电脑上安装了python3.7.6版本,编译时显示 python37_d.lib没有,找了一下,确实是没有的,查了一下,需要安装Download debug binaries,通过modify 选上下图。

opencv入门(一)----opencv(4.5.5)编译_第7张图片

opencv入门(一)----opencv(4.5.5)编译_第8张图片

  • 错误2:有一个莫名其妙的错误,错误位置与实际位置不对应。简单粗暴方法就是去掉日文注释,你也可以通过修改文件编码来达到效果,将文件保存为UTF8,由于是在win上,最好选成"CR LF"(好像一定要修改成这个才行)

opencv入门(一)----opencv(4.5.5)编译_第9张图片

修改文件编码方法:

opencv入门(一)----opencv(4.5.5)编译_第10张图片

opencv入门(一)----opencv(4.5.5)编译_第11张图片

 

opencv入门(一)----opencv(4.5.5)编译_第12张图片

 

opencv入门(一)----opencv(4.5.5)编译_第13张图片

再次编译,就完成了。

不过不同人显示的错误可能不一样,这个跟电脑的原有环境有关,不同环境可能会有不同的错误信息。

 在Debug 和Release 都进行一次编码,在build文件夹下,就会出再lib和bin,由于我选择了BUILD_opencv_world,所以生成出来的lib和dll都只有一个命名opencv_world455d/opencv_world455,lib或者dll,还有Debug里有一堆pdb文件。

生成INSTALL

最后对在Debug 和Release 下对INSTALL编译一下,会生成正常使用的文件结构(与在网上下载的opencv-4.5.5-vc14_vc15.exe的文件结构相似)

opencv入门(一)----opencv(4.5.5)编译_第14张图片

好了,到这里,opencv4.5.5已经编译完成。

下一章将使用这个编译出来的库,进行入门使用讲解了。

你可能感兴趣的:(opencv,C/C++,opencv,c++)