当然由于这个程序是很短的我们可以这样 来编译 gcc -C main.c gcc-c mytoollC gcc -c mytool2C gCC o main main. o mytoollo mytool20
• 当然由于这个程序是很短的我们可以这样 来编译 gcc -c main.c gcc -c mytool1.c gcc -c mytool2.c gcc - o main main.o mytool1.o mytool2.o
这样的话我们也可以产生man程序而且也 不是很麻烦但是如果我们考虑一下如果有 天我们修改了其中的一个文件(比如说 mytool1c)那么我们难道还要重新输入上 面的命令?也许你会说这个很容易解决啊, 我写一个 SHELL脚本完成是的对于这个程 序来说,是可以起到作用的但是当我们把事 情想的更复杂一点如果我们的程序有几百 个源程序的时候难道也要编译器重新一个 个的去编译?
• 这样的话我们也可以产生main程序,而且也 不是很麻烦.但是如果我们考虑一下如果有 一天我们修改了其中的一个文件(比如说 mytool1.c)那么我们难道还要重新输入上 面的命令?也许你会说,这个很容易解决啊, 我写一个SHELL脚本完成.是的对于这个程 序来说,是可以起到作用的.但是当我们把事 情想的更复杂一点,如果我们的程序有几百 个源程序的时候,难道也要编译器重新一个 一个的去编译?
我们只要执行以下make,就可以把上面的问 题解决掉在我们执行make之前我们要先 编写一个非常重要的文件- Makefile对于 上面的那个程序来说,可能的一个 Maket|e 的文件是:
• 我们只要执行以下make,就可以把上面的问 题解决掉.在我们执行make之前,我们要先 编写一个非常重要的文件.--Makefile.对于 上面的那个程序来说,可能的一个Makefile 的文件是:
#这是上面那个程序的 Makefile文件 main: main.o mytool1o mytool20 gcc -o main main. o mytool1o mytool2o main.o: main. c mytoollh mytool2 h gcC -c main. c mytool1. o: mytoollc mytoollh gcc-c mytool1c mytool2. o: mytool2c mytool2h gcc -c mytool2c
• # 这是上面那个程序的Makefile文件 • main:main.o mytool1.o mytool2.o gcc -o main main.o mytool1.o mytool2.o main.o:main.c mytool1.h mytool2.h gcc -c main.c mytool1.o:mytool1.c mytool1.h gcc -c mytool1.c mytool2.o:mytool2.c mytool2.h gcc -c mytool2.c
有了这个 Makefile文件,不管我们什么时候 修改了源程序当中的什么文件我们只要执 行make命令我们的编译器都只会去编译和 我们修改的文件有关的文件
• 有了这个Makefile文件,不管我们什么时候 修改了源程序当中的什么文件,我们只要执 行make命令,我们的编译器都只会去编译和 我们修改的文件有关的文件