win10下cmake使用入门
1、 获取cmake, 安装包到cmake的官网下载cmake相关版本, 本文选择最新版本的cmake-3.11.1-win64-x64.msi, msi是需要安装的, zip是免安装的, 我们这里选择安装的, 具体如下图所示:

3、 成功安装cmake以后, 我们就一起来研究下在win10下怎么使用cmake, 安装包安装完成以后, 我们可以启动cmake gui, 具体如下图所示:

4、 本文主要是来分享如何使用cmake配置qt5.5项目的, 具体怎么安装qt5.5就不在本文这里来说明, 本文假设您的电脑上已经成功安装了qt5.5开发环境, 安装成功后如下图所示:


7、 然后点击下方Configure按钮配置项目,点击后首次配置需要选择想要构建的项目, 具体如下图所示:

9、 下面的错误提示文字"CMake Error: The 衡痕贤伎source directory "C:/Users/enju/Desktop/helloworld" does not appear to contain CMakeLists.txt.Specify --help for usage, or press the help button on the CMake GUI." 意思是在源码目录"C:/Users/enju/Desktop/helloworld"下面不包含CMakeLists.txt文本文件。 这就需要我们在项目文件夹中手动创建一个CMakeLists.txt文件。 文件内容如下:#设置cmake版本号cmake_minimum_required(VERSION 3.11.1 FATAL_ERROR)#设置工程名称project(helloworld)#设置工程包含当前目录, 非必须set(CMAKE_INCLUDE_CURRENT_DIRON)#设置自动生成moc文件,一定要设置set(CMAKE_AUTOMOC ON)#查找需要的Qt库文件, 最好每一个库都要写, Qt也会根据依赖关系自动添加find_package(Qt5Widgets)find_package(Qt5Core)find_package(Qt5Gui)#查找当前文件夹中的所有源代码文件,# 也可以通过Set命令将所有文件设置为一个变量FILE(GLOBSRC_FILES"./*.cxx")#同理, 查找当前文件夹中所有的头文件FILE(GLOB HEAD_FILES "./*.h")#同理, 查找当前文件夹中所有的ui文件FILE(GLOB UI_FILES "./*.ui")#通过Ui文件生成对应的头文件, 一定要添加qt5_wrap_ui(WRAP_FILES${UI_FILES})#添加资源文件set(RCC_FILESrcc.qrc)#将ui文件和生成文件整理在一个文件夹中, 非必须source_group("Ui"FILES${UI_FILES}${WRAP_FILES})#创建工程文件 add_executable(${PROJECT_NAME}${SRC_FILES}${HEAD_FILES}${RCC_FILES}${WRAP_FILES})#添加Qt5依赖项target_link_libraries(${PROJECT_NAME} Qt5::Widgets Qt5::Core Qt5::Gui) 添加了CMakeLists.txt文本文件的目录结构如下图所示:

11、 在出现上面的情况的时候, 这里的"第一次Configure"后, 需要选择一些设置, 选择"Specify native compilers", 具体如下图所示:

13、 如果还发现报错了, 就设置系统的环境变量, 即把d:\opencv\Qt\Qt5.5.0\Tools\mingw492_32\bin加入系统的Path环境变量中, 然后点击Configure如下第一幅图所示, 然后又弹出一个错误提示框如下第二张图片, 其文本提示信息:"Configuring incomplete, errors occurred!"表明还有错误!

14、通过上面的提示错误, 我们打开CMakeLists.t垓矗梅吒xt文件, 找到信息中指出的错误发生的行数:Detecting CXX compile fe锾攒揉敫atures - doneCMake Warning at CMakeLists.txt:14 (find_package): By not providing "FindQt5Widgets.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Qt5Widgets", but CMake did not find one.CMakeLists.txt文件14行以下是:#查找需要的Qt库文件, 最好每一个库都要写, Qt也会根据依赖关系自动添加find_package(Qt5Widgets) find_package(Qt5Core) find_package(Qt5Gui)看样子是cmake在查找Qt库文件Qt5Widgets的时候发生了错误!这个错误只要在CMakeLists.txt文件中添加一行代码: set(CMAKE_PREFIX_PATH "D:\\soft\\qt5.5\\5.5\\mingw492_32\\lib\\cmake\\")果然设置一下CMAKE_PREFIX_PATH到qt base目录, 就搞定。 但是这个不是彻底解决问题的方法, 最彻底的解决办法是在系统变量里面也加入一个Qt5Widgets_DIR新的环境变量,我们先在Qt的安装路径下找到了FindQt5Widgets.cmake等文件所在目录路径, 这类错误可能都可以用这种方法来解决, 只要找到相应的*.cmake文件的路径, 然后把路径添加到系统的环境变量中, 看就可以解决了,具体如下图所示:

16、 完成第一次的配置后, 接下来再进行第二次配置, 再次点击configure按钮, 这次配置时间很快就好了,经过两次的配置, 点击Generate生成最终解决, 具体如下图所示:

18、Cmake GUI的使用: 选择源码和输出目录, 进行两次Configure, 然后进行一次Generate。 构建完毕的项目可以导入IDE, 或使用gcc等工具进行编译。