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源代码并搭建开发环境,折腾了很长时间,查阅了很多相关资料,终于 ...
随机推荐
- cocos2d-x 2.x版本接入bugly的总结
最开始项目使用的是自己DIY的很简陋的上报系统,后来改成google breakpad来上报,发现其实都做的不太理想,游戏引擎因为版本历史问题存在一些崩溃问题.后来3.x接入了bugly,我这边抽了几 ...
- MongoDB图形化管理工具
NoSQL的运动不止,MongoDB 作为其中的主力军发展迅猛,也带起了一股开发图形化工具的风潮:气死反过来说,看一个产品是否得到认可,可以侧面看其第三方工具的数量和成熟程度:简单的收集了MongoD ...
- iOS crash 异常捕获
// // UncaughtExceptionHandler.m // UncaughtExceptions // // Created by Matt Gallagher on 2010/05 ...
- 在IE7下使用angularjs(转)
在我的环境中,主要支持的浏览器为:ie7, ie8, ie9, chrome等.在试验angularjs时,发现在ie7环境下运行有问题,于是在网上搜了一下相关的内容,说HTML标签的写法要这样: & ...
- gridlaylout 简单布局
package com.example.gridlayout; import android.app.Activity; import android.os.Bundle; import androi ...
- WIN7只能上QQ打不开网页,使用CMD输入netsh winsock reset
此类问题可以用腾讯电脑管家电脑诊所一键修复,请点击上方的[立即修复]即可. 附:手动修复步骤(来源:腾讯电脑管家电脑诊所,自动修复请点击上方的[立即修复])方案一:手动设置DNS(说明:如果您使用DN ...
- javascript - 二叉树
都是些简单的东西,所以直接上代码了. /** * Created by huangjacky on 14-10-3. */ function Node(element, left, right) { ...
- System.Diagnostics.Debug和System.Diagnostics.Trace 【转】
在 .net 类库中有一个 system.diagnostics 命名空间,该命名空间提供了一些与系统进程.事件日志.和性能计数器进行交互的类库.当中包括了两个对开发人员而言十分有用的类——debug ...
- 【转帖】自助式BI的崛起:三张图看清商业智能和大数据分析市场趋势
自助式BI的崛起:三张图看清商业智能和大数据分析市场趋势 大数据时代,商业智能和数据分析软件市场正在经历一场巨变,那些强调易用性的,人人都能使用的分析软件正在取代传统复杂的商业智能和分析软件成为市场的 ...
- SQL Server 2008|2012 阻止保存要求重新创建表的更改
不是很理解为什么在SQL Server 2008及以后的版本中会加入阻止保存要求重新创建表的更改这个选项.太麻烦了,每次修改表结构的时候会被"阻止".很不方便. 问题描述: SQL ...