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,应该可以完美运行(如果第一次报错,那么关闭,重新打开应该就可以了)。
在点击configure时,会出来一个选择编译器的框,你选一个你机器里有的编译器就可以了。
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。
Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。
以上是关于cmake编译opencv总是出错 求助啊的主要内容,如果未能解决你的问题,请参考以下文章
在win10下实现openCV3.2.0+vs2015+cmake出错解决方案