很多人都用的Qt Creator进行开发, creator 确实很方便, 但调试起来,还是没有vs快捷。
cmake 实用于较为大型的项目的开始, 而且与vs组合, 更是功能强大, 加上比creator方便的调试优势,还是很不错的一个选择。
由于近一两年接触的几个项目, 都是用vs2010 + qt4.8 + cmake 进行的框架搭建, 所以总结了一些方法, 也感受到了, 它大型项目中,所起的巨大作用。 它能够把项目源码和编译的内容模块, 全部分开, 使结构很清晰。
下面讲一讲最简单的Qt4.8 + vs2010 + cmake环境的搭建。 一个最简单的实例:
1. 安装cmake。 在网上可以找到cmake安装包进行下载, 并安装。
2.vs 2010 的安装。
3.QT4.8 源码的编译。 最后,还需要添加环境变量。
4.在一个目录下面放最简单的五个文件,比如我用的例子 CMakeLists.txt cmakeqtvs.cpp cmakeqtvs.h cmakeqtvs.ui main.cpp
CMakeLists.txt这个是必须的,而名字也必须一样。
我这里面的内容为:
cmake_minimum_required (VERSION 2.6 FATAL_ERROR)
project (cmake_qt_vs_test)
find_package (Qt4 REQUIRED)
set (in ${PROJECT_SOURCE_DIR})
include_directories (${in})
set (project_SOURCES main.cpp cmakeqtvs.cpp)
set (project_HEADERS cmakeqtvs.h)
set (project_FORMS cmakeqtvs.ui)
QT4_WRAP_CPP (project_HEADERS_MOC ${project_HEADERS})
QT4_WRAP_UI (project_FORMS_HEADERS ${project_FORMS})
INCLUDE (${QT_USE_FILE})
ADD_DEFINITIONS (${QT_DEFINITIONS})
ADD_EXECUTABLE (cmake_qt_vs_test ${project_SOURCES}
${project_FORMS_HEADERS}
${project_HEADERS_MOC})
TARGET_LINK_LIBRARIES (cmake_qt_vs_test ${QT_LIBRARIES})
上面的脚本为一个环境配置, 包括cmake最小版本, QT库的添加, sourc, header, forms文件的存放。
cmakeqtvs.cpp cmakeqtvs.h cmakeqtvs.ui main.cpp 由于是测试, 这几个文件可以自己手动写, 也可以直接通过creator生成,
再拷贝过来。 值得一值的是, 原来cmakeqtvs.cpp中的头文件, 是#include "ui_cmakeqtvs.h" 现在要改成你现在cmake之后所选路径,我这里是#include "build/ui_cmakeqtvs.h"
我这里的目录结构为:
其中build是在后面生成的, 而且build是在CmakeQtVs这个目录下面, 这样#include "build/ui_cmakeqtvs.h" 包含这个头文件之后,才能找到。 在没有打开cmake之前, 是不需要建build目录的。
5.打开cmake
最上面那两个选择输入框, 第一个是选择源码所在位置, 第二个选择是项目构建所在位置。 我这里把构建,放在源码目录下面,再建 了一个build目录, 也为了头文件好找到后面自动生成的ui_cmakeqtvs.h文件。
配好路径之后, 再分别单击Configure 和 Generate , 只要没有报红色的错识提示就算环境搭建正确。
打开自动生成 的build文件下面的,cmake_qt_vs_test.sln , 进行生新生成后,会有下面些文件:
然后, 如果编译调试没有出现问题, 那么一个简单的cmake + vs2010 + qt4.8的编译环境算是搭建起来了。