针对的是对Makefile一点都不会的小白哦!
练习之前我们要做好准备:
(1):第一步创建一个目录,因为实验过程中生成的文件会很多,不要把你系统里的文件搞得乱七八糟。
[cjj@bogon ~]$ mkdir makedemo1
[cjj@bogon ~]$ cd ./makedemo1/
(2):接下来你需要写四个程序
[cjj@bogon makedemo1]$ vi f1.c
************************************************************************************************************************************************
[cjj@bogon makedemo1]$ vi f2.c
************************************************************************************************************************************************
[cjj@bogon makedemo1]$ vi head.h
************************************************************************************************************************************************
[cjj@bogon makedemo1]$ vi main.c
(3)准备工作完成,下面我们开始动真格的了!创建一个Makefile文件。
[cjj@bogon makedemo1]$ vi Makefile
写入以下内容:
test:f1.o f2.o main.o # 创建一个test文件,后面是他的以来文件,依赖
# 的文件是:f1.o; f2.o; main.o这三个文件。
gcc f1.o f2.o main.o -o test # 执行gcc编译命令,将f1.o ;f2.o; main.o三个文件编译生成test文件。
f1.o:f1.c # f1.o的依赖文件是f1.c
gcc -c Wall f1.c -o f1.o # 执行gcc编译命令,将f1.c 编译生成f1.o文件。
f2.o:f2.c # f2.o的依赖文件是f2.c
gcc -c Wall f3.c -o f2.o # 执行gcc编译命令,将f2.c 编译生成f2.o文件。
main.o:main.c # 同上
gcc -c Wall main.c -o main.o
.PHONY:clean # 这句话的意思就是可以使得clean这个语句重复编译
clean:
rm *.o test # 清除以“.o”为后缀的文件和test文件
注:gcc前面是Tab键,不要用空格键代替,会报错!!!!!
(4)做完这些就可以开始执行了
[cjj@bogon makedemo1]$ make
结果:
这时你会发现你的目录下多出很多文件
这时你一开始写的那四个文件如果没有改动再次执行编译的话,会有一行报错,不要担心,没有错!这是正常现象,表示你没有更新,不需要重新编译。
(5)现在可以看一下你的成果了
[cjj@bogon makedemo1]$ ./test