cmake编译opencv总是出错 求助啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cmake编译opencv总是出错 求助啊相关的知识,希望对你有一定的参考价值。

系统:win8.1     基本上都是按这篇博客配置的,mingw环境变量也添加了,但是总是出现如下错误,求解决啊:CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.Missing variable is:CMAKE_CXX_COMPILER_ENV_VAR
CMake Error: Could not find cmake module file: D:/opencv/opencv2/CMakeFiles/3.3.1/CMakeCXXCompiler.cmakeCMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.Missing variable is:CMAKE_C_COMPILER_ENV_VAR
CMake Error: Could not find cmake module file: D:/opencv/opencv2/CMakeFiles/3.3.1/CMakeCCompiler.cmakeConfiguring incomplete, errors occurred!

是你的编译器版本不对, You probably need to select a different build tool.
在点击configure时,会出来一个选择编译器的框,你选一个你机器里有的编译器就可以了。

延展回答:

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。

这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

参考技术A

用CMake导出VC++项目文件
运行cmake-gui,设置路径为OpenCV安装路径(本文档假定安装位置为:D:\\Program Files\\OpenCV2.0),并创建子目录D:\\Program Files\\OpenCV2.0\\vc2008,用于存放编译结果。
然后点 configure,在弹出的对话框内选择 Visual Studio 9 2008。
如果是VC++2008的Express版本,则不支持OpenMP,所以需要取消ENABLE_OPENMP选项。VC++ 2008(不是Express版本)支持OpenMP,如果你使用VC++2008,强烈建议不要取消这个选项。
编译 OpenCV Debug和Release版本库
完成上一步骤后,将在D:\\Program Files\\OpenCV2.0\\vc2008目录下生成OpenCV.sln的VC Solution File,请用VC++ 2008 打开OpenCV.sln,然后执行如下操作:
在Debug下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。
在Release下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。
此时,OpenCV的*d.dll文件(for debug)和*.dll文件(for release)将出现在D:\\Program Files\\OpenCV2.0\\vc2008\\bin目录中;OpenCV的*d.lib文件(for debug)和*.lib文件(for release)将出现在D:\\Program Files\\OpenCV2.0\\vc2008\\lib目录;头文件*.h出现在D:\\Program Files\\OpenCV2.0\\vc2008\\include\\opencv中。
可以被VC++ 2008 调用的OpenCV动态库生成完毕。
配置Windows环境变量Path
将D:\\Program Files\\OpenCV2.0\\vc2008\\bin加入Windows系统环境变量Path中。加入后可能需要注销当前Windows用户(或重启)后重新登陆才生效
为VC++ 2008 配置OpenCV环境
打开VC++ 2008 ,菜单 Tools -> Options -> Projects and Solutions -> VC++ Directories
Show directories for选择include files,加入目录 D:\\Program Files\\OpenCV2.0\\vc2008\\include\\opencv
Show directories for选择library files,加入目录 D:\\Program Files\\OpenCV2.0\\vc2008\\lib
关闭VC++ 2008

Microsoft Visual Studio--common--MSDev98--Bin—MSDEV.EXE,通过此路径找到MSDEV.EXE可执行文件(或者右击桌面VC图标,选择打开文件位置)。
右键--属性--常规,将MSDEV.EXE更名为MSDEV1.EXE(其它名称也行,如MSDEV2.EXE).
右键--属性--兼容性,兼容模式选择Windows XP(service pack2)"或者WindowsXP(service pack3).权限等级勾选为“以管理员身份运行此程序”,点击确定。
重新运行VC6.0,应该可以完美运行(如果第一次报错,那么关闭,重新打开应该就可以了)。

参考技术B

在点击configure时,会出来一个选择编译器的框,你选一个你机器里有的编译器就可以了。

    CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。

    Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

以上是关于cmake编译opencv总是出错 求助啊的主要内容,如果未能解决你的问题,请参考以下文章

CMake出错,应该怎么办?

CMake编译VTK,ITK总是出错

linux下cmake编译opencv 为啥这么慢

在win10下实现openCV3.2.0+vs2015+cmake出错解决方案

求助:为啥我编的C++程序在自己电脑上能正常运行,但编译后挂在后台linux系统下就总是运行一半后出错,

使用 Visual Studio 2015 编译 OpenCV 2.4.12 时出错