CMake是一个跨平台的编译控制系统,通过其自己的脚本语言定义编译目标、编译器选项、配置文件预处理等等,并生成用于编译的配置文件,如Visual C++项目或者Makefile。它类似于GNU Automake,只是跨平台跨得更广,cmake脚本比M4宏语言更容易掌握。
那么就有一个问题:IDE是很方便的。而如果用CMake做项目,应当使用什么IDE呢?虽然CMake能够生成一些IDE的配置文件(如Visual C++、CodeBlocks、XCode),但那是让你用来直接使的(如同Automake生成的Makefile一样),而不是让你用来改的。
本人尝试、摸索了一段时间,发现目前有如下三个IDE能比较好地支持CMake。
KDevelop
KDevelop是KDE计划推出的IDE。由于KDE使用CMake作为其“标准”的配置文件(就如Visual C++之于Windows、Automake之于Gnome一样),Kdevelop使用CMake作为其主要的项目配置方式。除此之外还支持qmake、makefile。
其最重大的缺陷在于:KDevelop的bug太多了,经常崩。本人在经历了若干次启动IDE即崩溃之后就绝望了,转而寻找其它的IDE。而且这个IDE没法在windows下面用。此外,它的输入自动补完的行为有些过于主动。
Netbeans
经过了一番寻找之后,我尝试了这个swing界面的IDE。令我感到很惊讶,这个IDE居然对CMake支持很好。只是导入CMake项目的时候要小心一点,它的默认行为会编译到源代码目录里,而不是想CMake通常的用法那样编译到单独的目录里。
它的主要缺点是:swing界面个人觉得比较恶心,尤其是swing自己画的那个文件对话框。有时源代码parser会错误地报出一堆bug,但重新一存就都没了。而它输入自动补完的行为又有些过于不主动,咱还没有调教好。
QtCreator
最近才知道这个东西是IDE,以前一直以为是界面设计器来着,汗……
尝试了一下,发现反应速度似乎比较快,但是对于CMake有个严重的缺点:它导入的CMake项目,只能找到CMakeLists中直接使用的源代码文件,而你自己定义的头文件就找不到。于是,编译时如果有错误在头文件里,你不能直接点击错误信息跳过去,必须手工打开文件然后找到那行。