以前经常在Windows上写程序,源文件的预处理、编译、连接、运行等等都由强大的 IDE 帮我完成。之后在 Linux 操作系统上写程序的时候文件需要一个一个编译、连接、运行,文件较多的时候的确有些繁琐,就自己学着写相对简单的Makefile,而且修改源文件之后只需要一个 make
指令就全部完成,最后运行可执行文件。下面我来举个Makefile写法的例子:
- 源文件目录:
create.c // 建立一个矩阵 display.c // 输出矩阵 main.c // 主函数 predefine.h // 头文件 reverse.c // 矩阵转置 sort.c // 矩阵每行的元素排序
- Makefile:
objects = main.o sort.o reverse.o display.o create.o main:$(objects) gcc $(objects) -o main main.o:main.c predefine.h gcc -c main.c -o main.o sort.o:sort.c predefine.h gcc -c sort.c -o sort.o reverse.o:reverse.c predefine.h gcc -c reverse.c -o reverse.o display.o:display.c predefine.h gcc -c display.c -o display.o create.o:create.c predefine.h gcc -c create.c -o create.o clean: rm *.o main
每个源文件都包含有头文件,所以依赖关系中要体现出来。在命令行输入 make
之后,会生产一个名字为 main
的可执行文件;输入 main
之后程序开始运行;运行结束输入 make clean
可以清除产生的中间文件以及可执行文件。