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源代码并搭建开发环境,折腾了很长时间,查阅了很多相关资料,终于 ...
随机推荐
- Sencha Toucha 2 —1.环境安装配置、在线打包、离线打包
环境安装配置 1. 下载 1.1 Sencha Touch 下载 http://cdn.sencha.com/touch/sencha-touch-2.2.1-gpl.zip 1 ...
- Linux下查看mysql、apache是否安装,安装,卸载等操作
Linux下查看mysql.apache是否安装,并卸载. 指令 ps -ef|grep mysql 得出结果 root ? :: /bin/sh /usr/ ...
- clearfix清除浮动进化史
我想大家在写CSS的时候应该都对清除浮动的用法深有体会,今天我们就还讨论下clearfix的进化史吧. clearfix清除浮动 首先在很多很多年以前我们常用的清除浮动是这样的. .clear{cle ...
- nginx 反向代理 与 Apache backend的配置联合配置
nginx 反向代理 与 Apache backend的配置联合配置: 说明: nginx 将http映射到Apache上的特定子目录. 配置方法步骤: 1. 设置域名, 子域名映射到指定服务器ip ...
- 手机操控全站仪安卓版 测量员.app
大家期待已久的智能化全站仪测量功能已经实现了, 简介 测量员是一款运行在智能手机上的测量应用程序,具有计算精确.轻松高效.智能便捷的特点.测量员可以应用在道路.桥梁.铁路.隧道.地铁.市政等工程中,除 ...
- JavaScriptSerializer 中的匿名类型 转json
二:JavaScriptSerializer 中的匿名类型 这个类型我想大家都清楚,不过性能更高的方式应该是用JsonConvert吧,但这个不是本篇讨论的话题,我们重点来看看匿名类型的Json序列化 ...
- Jenkins FTP 上传
需要插件:FTP publisher plugin 进入 Jenkins / 系统管理 / 系统设置 找到 FTP repository hosts,新增一个,编辑好,保存 打开 Jenkins / ...
- 用Hibernate Tools生成Hibernate Mapping映射文件
Eclipse中要集成安装Hibernate Tools组件 如果没有,请查看:Eclipse juno 中安装 JBoss Tools,集成Hibernate 一.确定环境: 1.Maven3.0. ...
- CSS - Transform(Translate) abnormal shadow in firefox
问题:当在Firefox中实现动画translate时,会出现虚影的状况: 经查找相关的解决方法,父容器添加样式:outline: 1px solid transparent;//即可解决问题. 但不 ...
- JS/React 判断对象是否为空对象
JS一般判断对象是否为空,我们可以采用: if(!x)的方式直接判断,但是如果是一个空对象,比如空的JSON对象,是这样的:{},简单的判断是不成功的,因为它已经占用着内存了,如果是JQuery的话, ...