既然已经习惯了Qt Creator,索性将它作为通用IDE,另外还需要选择一个通用的make系统,当然这就是Qt Creator默认也支持的CMake。
使用CMake作为构建系统,需要自己写CMakeLists.txt,相当于qmake下的pro,只不过更加与平台以及编译器无关。
先来个最简单的CMakeLists.txt:
- PROJECT (HELLO)
- ADD_EXECUTABLE(kkk main.c)
嗯,相当简单,第一行定义工程名字,第二行定义可执行文件名字,以及依赖文件。
下面可以使用Qt Creator来导入这个工程了:
- 选择 File > Open File or Project... .
- 选择 工程路径下的 CMakeLists.txt文件
如果没有定义in-place build, Qt Creator会弹出设置shadow build的对话框。
下一步是生成makefile的对话框,cmake可根据需要生成不同编译环境下的makefile,比如NMake Generator, MinGW Generator。
这图有点老,我用的qtcreator2.0.1多提供了一个关于generator(mingw,nmake)的选项,这相当于指定cmake命令行-G 参数。其余需要向cmake传递的参数,都放到Arguments里,比如-DCMAKE_BUILD_TYPE=Debug,编译带debug信息的。注意每次CMakeLists.txt改变后,qtcreator都会弹出这个对话框要求你重新run cmake,然而arguments不必每次都填写,因为cmake会在CMakeCache.txt中记录以前所有添加过的参数。如果要完全清除,则直接删除CMakeCache.txt。
参数填好后,点击run cmake, finish。 Qt Creator将会创建好工程,并打开作为当前编辑工程。如果没有生成工程,说明CMakeLists.txt中有错误,修改之。
接下来的事情就是我们最熟悉的,修改CMakeLists.txt,重新生成makefile, 添加删除文件,写代码,编译,调试。
最后设置一下执行环境,在Qt Creator的Projects->Run Settings->Run Configureation里选择当前的可执行文件kkk。
可以用了,但还不是很理想,默认生成的工程只有一个build setttings:all。如果想进行debug,release或者其他定制,需要创建自己的build settings。选中projects,build settings页,edit build configuration,add一个名为debug的build settings,可以从默认的all里clone一个,也可以创建全新的,跟上面步骤一样:
- 指定build 目录,注意不同的build settings应该使用不同的目录
- 运行cmake生成makefile,同时指定cmake的命令行参数 -DCMAKE_BUILD_TYPE=Debug
这样就有了Debug版的build settings,再添加一个release版的,all可以删掉了。这样我们就能像qmake项目那样在debug和release构建模式之间任意切换了。至此,跨平台的基于CMake的Qt Creator就搭建好了。
使用msvc编译器需要设置好环境变量:
INCLUDE=C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/INCLUDE;C:/Program Files/Microsoft SDKs/Windows/v6.0A/Include
LIB=C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/LIB;C:/Program Files/Microsoft SDKs/Windows/v6.0A/Lib
LIBPATH=?貌似这个可以不需要
PATH=C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin;C:/Program Files (x86)/Microsoft Visual Studio 9.0/Common7/IDE;C:/Program Files (x86)/Microsoft Visual Studio 9.0/Common7/Tools