c++ 编译OpenCV-3.3.0过程及遇到的问题

        工作电脑之前用的是vs2013,这是在自己电脑上由于使用比较少,vs下载安装包太大,平时用eclipse与idea用得也比较习惯,所以就有了这篇文章

平台:

windows 7 x64

opencv 3.3.0

cmake x64

mingw x64

opencv集成eclipse 安装CDT插件支持c++(vscode集成会写在下一篇)

    

分为四个步骤: 下载文件与安装cmake, 再通过cmake生成项目,mingw-make命令编译opencv源文件,mingw-install安装编译后的项目

1.   准备工作

下载openCV,打开官网https://opencv.org/releases.html

这里下载完成后是exe文件,而不是下载源码

下载完成后的文件:

打开exe文件解压到指定目录:

安装CMake

安装完成后打开初始界面

安装mingw ,这里注意如果系统64位的话,建议安装64位的,在编译过程报错,我最开始下载是32位的,编译的时候直接报错了

error: 'thread'in namespace 'std' does not name a type

报是这个报错,google了半天说是重新安装就好了

安装完成cmd看下是否安装成功

2.   开始编译

在x64目录下新建一个mingw路径,存入编译完成的文件,我放的是D盘下D:\opencv\build\x64\mingw

下一步重要,我在编译到47%就报了这个错,然后又要重头开始,浪费了好多时间

完成算下来应该是用了一个半小时,包括出错重头开始….

报错---

sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA错误

...opencv/sources/modules/videoio/src/cap_dshow.cpp...

...'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' was not declared inthis scope ...

解决方式:

在cap_dshow.cpp(目录在上面) 添加一行:#define NO_DSHOW_STRSAFE

如:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#defineNO_DSHOW_STRSAFE

#include "DShow.h"

下一步配置cmake的source  和build就是刚开始解压的路径,这里是D:/opencv/sources,D:/opencv/build/x64/mingw(就是刚才新建的目录)

点击configrure  再点击generate,

如果以编译过程中报错如下:

报错----

... windres.exe:unknown option – W

在生成之前的把headers这里勾去掉就可以了编译过去了

 

生成之后打开D:/opencv/build/x64/mingw,打开cmd命令行窗口输入:mingw32-make等待到100%即可,如有出错按上面提示修正.再接着编译…

最后看到这个,表示已经编译完成可以使用了

3.编译完成之后,再通过 mingw-make install 安装编译后的工程。。。。

4.   最后打开eclipse,新建一个c++项目(前提是已经安装eclipse的CDT插件)

在项目属性,c++build=>setting 下面

最后是显示结果

 

int main(int arg,char** args) {

  Mat src,dst;

  string img ="c:\\users\\administrator\\downloads\\t1img.jpg";

  src = imread(img);//图片地址

  if(!src.data){//data是判断图片是存在

     printf("%s\n", "图片不存在");

     return -1;

  }

  //显示图片

  namedWindow("inputimage",CV_WINDOW_AUTOSIZE);

  imshow("inputimage",src);

  waitKey(0);

  cout << "HelloWorld" << endl; //prints Hello World

  return 0;

}

猜你喜欢

转载自blog.csdn.net/zoeou/article/details/79559189