*配置环境以及所涉及软件版本:
*操作系统:win10系统
*IDE版本:codeblocks 17.12
*OpenCV版本: 2.4.10
*编译辅助工具:cmake-3.12.0-rc2-win64-x64
1) 安装codeblocks(去http://www.codeblocks.org/下载最新的mingw版本)
2) 下载opencv-2.4.10.exe (下载地址:http://opencv.org/或http://www.opencv.org.cn/)
3) 双击运行opencv-2.4.10.exe,选定一个解压路径,这里选的是F:\personal\data\openCV\opencv_2.4.10,得到一个文件夹opencv_2.4.10。(以下操作均按F:\personal\data\openCV\opencv_2.4.10路径操作)
4) 编译openCV源码
codeblocks默认的编译器是MinGW,而当前所用OpenCV版本是2.4.10,所带build中的lib库只有vc10,vc11,vc12三个版本,这些都是VS编译器编译出来的,放在MinGW环境下自然会出问题了。
概括之,出现上述问题的原因,其实就是用的codeblocks所带的MinGW编译器与OpenCV编译版本不一致造成的。
解决方法也很简单,自然是将OpenCV换成与codeblocks对应MinGW编译环境一致的编译版本了。
借助cmake工具用当前所用的codeblocks里带的mingw去编译下载下来的OpenCV源码(就是那个source文件夹)
一. 首先下载编译工具cmake,这里用的cmake版本是cmake-3.12.0-rc2-win64-x64,可以到官网http://www.cmake.org/download/去下载,下载完成后安装即可。
二. 运行cmake,在where is the source code中填入OpenCV源代码文件的路径,这里用的路径是“F:/personal/data/openCV/opencv_2.4.10/sources”;在where to build the binaries中填入编译文件需要存放的路径,这里用的是“F:/personal/data/openCV/opencv_2.4.10/build/x64/codeBlocks”(存放路径文件自己定义新建一个即可):
三. 点击“Configure”;在Specify the generator for this project中选择CodeBlocks - MinGW Makefiles,选中Specify native compilers,点击“Next”;
四. 选择编译器路径,这里Compilers: C 选择目录为“codeblocks安装路径C:/Program Files (x86)/CodeBlocks/MinGW/bin/gcc.exe”; C++ 选择目录为 “C:/Program Files(x86)/CodeBlocks/MinGW/bin/g++.exe”,点击“Finish”;
五. 然后再次点“Configure”;
六. 等走完进度条,选择需要的Generate选项,此处可以不操作直接点“Generate”,走完进度条便生成了“MinGW Makefiles”;
七. 之后用mingw对其进行编译,cmd打开命令提示符窗口,进到刚才的保存目录,这里是“F:\personal\data\openCV\opencv_2.4.10\build\x64\codeBlocks”,输入“mingw32-make”,回车;等待运行完毕后,输入 mingw32-make install,回车;(此过程大约需1-2个小时)
八. 运行完毕后便生成了mingw版的OpenCV库,进入“F:\personal\data\openCV\opencv_2.4.10\build\x64\codeBlocks\install”文件夹,便可以看到所需的头文件和库文件;
5) 启动codeblocks,新建一个“Console application”项目,任意取一个名字。
6) 测试的代码复制进去
#include "cv.h"
#include "highgui.h"
int main()
{
IplImage* img = cvLoadImage("test.jpg");
cvNamedWindow( "test", 0 );
cvShowImage("test", img);
cvWaitKey(0);
cvReleaseImage( &img );
cvDestroyWindow( "test" );
return 0;
}
7) 设置opencv相关头文件以及库文件路径,右击项目名称,选build options:
8) 弹出窗口,首先添加头文件路径,依次点击:Search directories->Complier->Add,选择头文件所在目录,如下图:
9) 选择库文件路径,依次点击Linker->Add,选择codeblocks\install下的lib库路径,如下图:
10) 最后点击Linker settings,添加相应库文件,这里如果不知道自己会用到那些库文件的话,可以将lib下的所有库文件全部添加进去,如图所示:
11) 第七步:动态库调用设置
两种方法任选其一即可:
第一种:可以设置系统变量,将“F:\personal\data\openCV\opencv_2.4.10\build\x64\codeBlocks\install\x86\mingw\bin;”添加到系统变量中,设置环境变量的方法Google之,在此不再赘余
第二种:将F:\personal\data\openCV\opencv_2.4.10\build\x64\codeBlocks\install\x86\mingw\bin下的所有dll文件复制到codeblocks对应工程下的bin\Debug文件夹下即可(如果会分辨opencv库文件的话,也可以只将用到的动态库复制即可)。