OpenCV开发环境配置-Windows/MinGW/Clion/CMake
临时更换成了TDM-GCC,和mingw类似,这里只是声明一下。
由于opencv下载下来的.exe安装包实际上是没有mingw(gcc)匹配的/动静态库,因此这些东西需要我们自己使用mingw编译。
首先是cmake配置,直接在source目录命令行下执行 cmake . 即可(注意后边有空格和代表当前目录的点号)
一般来说应该可以了,然后就是使用mingw32-make命令完成编译(过程较长),最后是使用mingw32-make install 生成需要的文件(头文件/动/静态库)
C:.
├─include
│ ├─opencv
│ └─opencv2
│ ├─calib3d
│ ├─contrib
│ ├─core
│ ├─features2d
│ ├─flann
│ ├─gpu
│ │ └─device
│ │ └─detail
│ ├─highgui
│ ├─imgproc
│ ├─legacy
│ ├─ml
│ ├─nonfree
│ ├─objdetect
│ ├─ocl
│ ├─photo
│ ├─stitching
│ │ └─detail
│ ├─superres
│ ├─ts
│ ├─video
│ └─videostab
└─x86
└─mingw
├─bin
└─lib
将bin加入系统path变量中。
2016.1.11更新,由于之前没有发现这个问题,现在在编译2.4.11版本的时候,我是用的是最新的支持gcc5.1.0的tdm gcc,在编译highgui模块的时候突然产生了这个问题,原始错误输出如下:
C:\opencv\sources\modules\highgui\src\window_w32.cpp: In function 'int icvCreateTrackbar(const char*, const char*, int*, int, CvTrackbarCallback, CvTrackbarCallback2, void*)':
C:\opencv\sources\modules\highgui\src\window_w32.cpp::: error: 'BTNS_AUTOSIZE' was not declared in this scope
WS_CHILD | CCS_TOP | TBSTYLE_WRAPABLE | BTNS_AUTOSIZE | BTNS_BUTTON,
^
C:\opencv\sources\modules\highgui\src\window_w32.cpp::: error: 'BTNS_BUTTON' was not declared in this scope
WS_CHILD | CCS_TOP | TBSTYLE_WRAPABLE | BTNS_AUTOSIZE | BTNS_BUTTON,
^
modules\highgui\CMakeFiles\opencv_highgui.dir\build.make:: recipe for target 'modules/highgui/CMakeFiles/opencv_highgui.dir/src/window_w32.cpp.obj' failed
mingw32-make[]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/src/window_w32.cpp.obj] Error
CMakeFiles\Makefile2:: recipe for target 'modules/highgui/CMakeFiles/opencv_highgui.dir/all' failed
mingw32-make[]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error
Makefile:: recipe for target 'all' failed
mingw32-make: *** [all] Error
主要就是有几个变量没有找到,后来在一个opencv的issues里找到了解答,大概意思就是在mingw的头文件commctrl.h中,对于上面的变量宏的定义实际上是由_WIN32_IE是否定义来决定的,然而我们找到这个头文件的时候,他的写法是这样:
#include <prsht.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _WIN32_IE
/* define _WIN32_IE if you really want it */
#if 0
#define _WIN32_IE 0x0300
#endif
#endif
看提示我们也知道,默认根本就不可能找到_WIN32_IE这个变量(后来查了一下,这个变量应该是规定所谓的windows的ie浏览器版本的变量,不知道怎么和opencv扯上了关系),所以上面那个issues的建议是改成:
#include <prsht.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _WIN32_IE
/* define _WIN32_IE if you really want it */
#if 1
#define _WIN32_IE 0x0500
#endif
#endif
那个0x0500也是我照改的,改完之后我确实能编译通过了,不知道保持原样会怎么样,不过我觉得既然IE版本跟opencv的win32gui没什么太大的关系,那应该是随便,只要定义一个就好。总而言之,这个问题暂时算是解决了。另外,由于我下个学期重选了数字图像处理这门课,我会在学习matlab的同时做opencv的基础学习的,到时候可能就会重新考量opencv这个库了,暂时先看2版本的,等熟悉了一点之后再转用3版本的。
然后是clion的cmakelist.txt编写如下,这是使用的最简单的一些库,稍后也可以自己加入。
cmake_minimum_required(VERSION 3.2)
project(opencv) set(CMAKE_CXX_FLAGS "-std=c++11") include_directories(C:\\\\opencv\\\\include) set(SOURCE_FILES main.cpp) set(TARGET_LIBS
"C:\\\\opencv\\\\x86\\\\mingw\\\\lib\\\\libopencv_core249.dll.a"
"C:\\\\opencv\\\\x86\\\\mingw\\\\lib\\\\libopencv_highgui249.dll.a"
"C:\\\\opencv\\\\x86\\\\mingw\\\\lib\\\\libopencv_imgproc249.dll.a"
) add_executable(opencv ${SOURCE_FILES}) target_link_libraries(opencv ${TARGET_LIBS})
然后是编写测试代码,
#include "iostream"
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv; int main(int argc,char *argv[]) {
if(argc!=){
cout<<"with args in two"<<endl;
return -;
}
Mat img = imread(argv[]);
if (img.empty()) {
cout << "Error" << endl;
return -;
}
imshow("Lena", img);
waitKey(); return ;
}
运行参数设置为lena.png

运行一次先产生debug目录,然后将lena.png转移到那个目录去就可以正确看到了:

OpenCV开发环境配置-Windows/MinGW/Clion/CMake的更多相关文章
- OpenGL开发环境配置-Windows/MinGW/Clion/CMake
因为某些原因,不想用过于臃肿的VS了,转而使用常用的jetbrains的CLion,Clion沿袭了jetbrans的优良传统,基本代码提示功能还是比较好的,不过就是对于windows不熟悉cmake ...
- AndroidStudio开发环境配置-Windows
Android Studio开发环境配置-Windows 最近突发奇想,开始研究Android开发.开始时使用Eclipse作为开发IDE,结果各种不好使,首先下载和安装SDK,以及不同版本的Imag ...
- 【转】测试LibreOffice SDK 开发环境配置(Windows)
原文:http://www.aqcoder.com/blog/detail/id/7441186b-93fd-482c-b4d7-0facd1ee498d 下载与安装 LibreOffice 主页:h ...
- Go语言Eclipse开发环境配置-Windows
1.首先安装eclipse,选择一个适合的版本就好,解压即可 http://www.eclipse.org/downloads/ 2.下载go语言安装包 官网地址 :http://www.golang ...
- Mac下OpenCV开发环境配置(Terminal和Xcode)
亲证可用:http://www.jianshu.com/p/11959977589a Mac OS X 10.1 Xcode 7.2(7C68) OpenCV 2.4.13 Mac OS10.11 ...
- PHP开发环境配置~Windows 7 IIS
1.配置IIS添加角色服务:CGI.ISAPI扩展.ISAPI筛选器 2.下载PHP安装包 http://windows.php.net/download/ 3.添加模块映射 4.配置php.ini ...
- Visual Studio OpenCV 开发环境配置
因为VS配置OpenCV好多新手都很难一次配置成功,而且OpenCV库每新建一个项目都要配置很是麻烦,所以今天就给大家介绍一个“一劳永逸”的方法. 注:理论上只要VS和OpenCV是版本兼容的,该方法 ...
- OpenCv的Java,C++开发环境配置
1.OpenCV 下载及安装配置 opencv的下载地址:http://opencv.org/downloads.html 最新版本:opencv3.0.0 注意:支持的visual studio20 ...
- Windows10 + Visual Studio 2017 + CMake +OpenCV编译、开发环境配置及测试
由于最近需要使用OpenCV,本人需要在自己的PC上使用OpenCV,因此最近一直在研究如何使用Visual Studio编译OpenCV源代码并搭建开发环境,折腾了很长时间,查阅了很多相关资料,终于 ...
随机推荐
- 转:SDL2源代码分析
1:初始化(SDL_Init()) SDL简介 有关SDL的简介在<最简单的视音频播放示例7:SDL2播放RGB/YUV>以及<最简单的视音频播放示例9:SDL2播放PCM>中 ...
- C# 修改webbrowser 的 useragent
Also, there is a refresh option in the function (according to MSDN). It worked well for me (you shou ...
- Scala 并行和并发编程-Futures 和 Promises【翻译】
官网地址 本文内容 简介 Futures 阻塞 异常 Promises 工具 最近看了<七周七语言:理解多种编程泛型>,介绍了七种语言(四种编程范型)的主要特性:基本语法,集合,并行/并发 ...
- Mac OS 中设置VPN(pptp连接方式)
第一步:点击系统设置(如图) 第二步:点击网络,进入网络设置(如图) 第三步:点击+号-创建新服务,创建新的VPN网络连接(如图) 第四步:接口-中选-VPN, VPN类型-中选-PPTP,服务名称- ...
- Codeforces Beta Round #80 (Div. 2 Only)【ABCD】
Codeforces Beta Round #80 (Div. 2 Only) A Blackjack1 题意 一共52张扑克,A代表1或者11,2-10表示自己的数字,其他都表示10 现在你已经有一 ...
- gradle 如何操作命令行
如题: 官方做法: task startApp(type: Exec){task -> workingDir mWorkingDirRoot commandLine 'cd'} 后来我看到这篇文 ...
- java知识大全积累篇
原文出自:http://www.importnew.com/14429.html 构建 这里搜集了用来构建应用程序的工具. Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使 ...
- 【转】drupal7请求异常,执行时间过长的解决方法
drupal7请求错误,执行时间过长的解决办法 根据你的系统或网络设置Drupal不能读取网页,造成功能缺失.可能是web服务器配置或PHP设置引起的,可用更新.获取更新源.使用OpenID登 录或使 ...
- Django 源码小剖: Django ORM 查询管理器
ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从 ...
- 分享一个点赞超过100的漂亮ASP.NET MVC蓝色界面框架
从 陈贞宝 博客中看到一个MVC模板感觉特别漂亮就尝试着分离出来,直接拿来用啦,直接拷贝到自己的常用的代码库里收藏起来,地址是http://www.cnblogs.com/baihmpgy/p/381 ...