针对的是对Makefile一点都不会的小白哦!

练习之前我们要做好准备:

(1):第一步创建一个目录,因为实验过程中生成的文件会很多,不要把你系统里的文件搞得乱七八糟。

[cjj@bogon ~]$ mkdir makedemo1

[cjj@bogon ~]$ cd ./makedemo1/

(2):接下来你需要写四个程序

[cjj@bogon makedemo1]$ vi f1.c
Makefile | Linux嵌入式编程 使用详细图解-LMLPHP

************************************************************************************************************************************************

[cjj@bogon makedemo1]$ vi f2.c
Makefile | Linux嵌入式编程 使用详细图解-LMLPHP

************************************************************************************************************************************************

[cjj@bogon makedemo1]$ vi head.h

Makefile | Linux嵌入式编程 使用详细图解-LMLPHP

************************************************************************************************************************************************

[cjj@bogon makedemo1]$ vi main.c
Makefile | Linux嵌入式编程 使用详细图解-LMLPHP

(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
结果:

Makefile | Linux嵌入式编程 使用详细图解-LMLPHP

这时你会发现你的目录下多出很多文件

Makefile | Linux嵌入式编程 使用详细图解-LMLPHP

这时你一开始写的那四个文件如果没有改动再次执行编译的话,会有一行报错,不要担心,没有错!这是正常现象,表示你没有更新,不需要重新编译。

Makefile | Linux嵌入式编程 使用详细图解-LMLPHP

(5)现在可以看一下你的成果了

[cjj@bogon makedemo1]$ ./test

Makefile | Linux嵌入式编程 使用详细图解-LMLPHP

05-11 19:34