• openCV的配置(mingw + clion)
  • 雪峰 发表于 2016-12-13 标签:
  • 使用mingw gcc编译器就是略显悲催……基本上很多C/C++源码都是基于vs编译的,因此使用mingw的话不得不自行编译一遍,所以一不小心就能踩到坑……上次编译openGL也是

    1.cmake + mingw 编译

    首先肯定是要进行编译,而编译之前还需要用cmake生成一些make文件,如果使用了cmake自带的GUI工具其实也是挺方便的,只需要把opencv的source文件夹作为源文件地址,然后选择输出文件的文件夹就可以了。首先是点击configure生成配置,成功后会显示可配置的参数。然后再点击generate生成最后的make文件,接着就可以用mingw32-make进行编译了,编译成功后可用mingw32-make install进行安装,最后需要的文件在install文件夹下。这些步骤我是参考知乎上的一个问题的答案:如何在CLion上配置使用OpenCV?

    baidu-ime_2016-12-13_17-44-34

    然而,可能运行过程中并不会那么一帆风顺,比如我就碰到了一个问题:用mingw32进行编译的时候总是在编译完成98%时失败,然后查找原因是在编译cv2.pyd文件的时候出错了,也就是python的一些配置有问题。然而,opencv本身就已经编译好python所需的文件了,因此用mingw编译时可以不需要再编译python相关的文件,解决办法就是在cmake的configure选项列表中除去与python相关的参数,然后再生成make文件,再用mingw进行编译。ok,100%编译完全。

    2.编写cmakelist配置文件

    在放置好相应的头文件和库文件后,进行cmakelist.txt文件的配置。cmakelist文件实际上就是包含所链接的lib文件(a文件),以及include文件夹。而需要的几个最基本的库为core,highgui,imgcodecs,imgproc这几个库。本身这些配置网上就有很多,一大堆。

    但还是有一个地方需要注意,就是opencv3以后,使用imread函数需要链接imgcodecs这个库,不然会报错。我本身就是因为没有加入imgcodecs这个库,而按照网上教程上做的,就总是报imread undefined,这我还是在stack overflow上看到一个问题的答案后才知道的:OpenCV : undefined reference to imread()

    baidu-ime_2016-12-13_18-5-10

    发表回复