嵌牛IT观察

搭建OpenCV开发环境:翻车补救指南(下)

2017-11-05  本文已影响0人  标准与或式

姓名:刘强
【嵌牛导读】
GCC和opencv官网提供的编译好的库存在兼容问题,本文介绍如何利用cmake和GCC编译出一个和当前环境兼容的opencv库
【嵌牛鼻子】
OpenCV   CMake   GCC
【嵌牛提问】
如何编译出一个与当前环境兼容的opencv库?
【嵌牛正文】
上一篇搭建OpenCV开发环境:翻车补救指南(上)最后提到,诸如:

//播放一段名为“input.avi”的视频
#include <cv.h>
#include <opencv2\opencv.hpp>

using namespace cv;

int main()
{
    VideoCapture capture;
    capture.open("input.avi");
    while(true)
    {
        Mat frame;
        capture>>frame;
        imshow("videotest",frame);
        waitKey(10);
    }
    return 0;
}

这样使用了C++调用接口的代码,GCC编译链接的时候无法和opencv官网提供的库兼容,这是因为opencv官网的库是用Visual Studio编译的,从win pack解压出来的文件目录可以看出,库文件存在这样三个版本:

分别表示用vc2010编译出来的版本,vc2011编译出来的版本,以及vc2012编译出来的版本。Visual Studio每一代版本内置的编译器都会和之前有些不容,因此,使用Visual Studio+opencv配置开发环境时一定要选用和下载的opencv相适应的VS版本。但是微软提供的VS社区版往往只提供了最新的版本,我们又想要使用opencv2.4.9,这时,就遇到兼容性问题了。

解决方案

问题的冲突主要在于官网提供的库是用Visual Studio编译的,而我们的环境里使用的是GCC编译器。既然opencv是开源的,我们可以很容易从官网下载到源代码,那么将其源代码用GCC编译成库文件就好了,这样编译出来的库一定是与当前编译环境兼容的。

运行结果
上一篇 下一篇

猜你喜欢

热点阅读