如果我的执行文件要包含四个源文件,那么我得做以下几件事:分别对四个源文件进行gcc -c目标文件编译,产生四个.o文件;再将这四个目标文件通过gcc -o进行链接成为可执行文件,同时加入libm函数库,也就是-lm。
可以看出编译的过程需要很多的操作,而且如果要重新编译的话,则上述的流程得重新来一遍,光是找出这些命令就够烦人得了,是否可以一个指令完成上面所有操作呢?
make命令就可以完成,在这里要涉及到make的介绍,这里不再赘述。
Make命令教程详解:http://www.linuxdiyf.com/linux/12391.html
阮一峰:Make命令教程:http://www.linuxdiyf.com/linux/8713.html
假设这四个源代码文件名为:1.c;2.c;3.c;4.c
要将这四个文件编译成一个可执行文件main
首先编写makefile这个规则文件,内容要制作出main这个可执行文件:
vim makefile
在mainfile里面,我们只需要写出main需要的目标文件,结果make会去主动判断每个目标文件相关的源码文件,并直接给予编译,最后在直接进行链接的操作。
基本的makefile规则是这样的:
目标(target):目标文件1 目标文件2
<tab> gcc -o 欲新建的可执行文件 目标文件1 目标文件2
特别留意的是,命令行必须要以tab按键作为开头才行
如果想要两个以上的执行操作时,例如执行一个命令就直接清楚所有的目标文件和可执行文件
然后命令输入make clean 通过make以clean为目标
如果想建立main文件的话,执行make main即可。