上篇给大家介绍了如何在linux下的ubuntu系统搭建C、C++的开发环境,现在已经有了操作系统,有了GCC、G++的编译器,有了vim-plus的编辑器,那么是不是就可以直接编码了呢?理论上是已经具备了编码的环境和条件了,事实上当然仅仅写代码也是没有任何问题的,但是如果需要在写完代码之后,继续进行代码的编译,那么我们还缺少一个环节,那就是本篇将要介绍的一个相对编码而言前置的编译问题。我们在编写完代码之后,需要借助G++来对我们编写的C++代码进行编译,将高级语言编译成机器可识别、执行的机器语言,G++是根据什么来进行代码编译的呢?这中间有一个叫makefile的中间件,这个makefile是一系列的编译规则合集,既可以让G++识别根据内涵的编译规则去进行编译工作,也可以让程序员来编写合适自己项目的编译流程,有了这个中间件之后,程序员通过编写编译规则,形成makefile文件,然后调用G++来进行编译工作,生成可执行文件,这是由代码到可执行文件的必经过程。
知道了这个必经过程之后,那么就有了解决方案,只要去搞定这个makefile文件就成了,但是makefile相对而言比较基础繁杂,需要编写较多的规则才能完成编译任务。而且这个编译过程可能会因为操作系统不同也不通用,那么是不是有能跨平台,又相对简单点更加容易上手的工具来解决这个问题呢,答案是肯定的,这个工具就是cmake。cmake自身并不能调用G++来进行编译工作,它是一款制造makefile的工具,相当于makefile的前端工具。cmake解决了上述的两个重要问题,第一,cmake相对makefile更加友好和高级,没有那么多的繁杂指令和规则,更加容易上手,几条简单的内置函数和变量就可以快速搭建工程项目进行编译生成可执行文件。第二,cmake具有相当的跨平台能力,既可以在linux下生成makefile文件进一步进行具体的编译工作,也能在windows下生成VS的工程项目文件,能比较方便快捷的完成跨平台工作,这是我选择使用cmake的重要原因。
在了解了linux下由代码生成可执行文件的必经过程和相关的高级工具cmake之后,本篇将给出一个简单的cmake小例子来讲述cmake的使用过程,由于本人也是linux下开发新手,例子也不复杂,仅使用了cmake的极少数指令和规则,更加复