Makefile
编写格式:
target: dependencies
commad
eg:
你有个test.c
文件,需要进行编译,一般在控制台使用gcc test.c -o test
来进行编译生成可执行文件test
。
现在使用Makefile
的写法是如下
test: test.c
gcc test.c -o test
只需要在对应的文件下的控制台里输入指令make
,就会自动编译文件生成test
。
当你有多个文件需要编程成一个可执行文件时,控制台写法:gcc tool.c mian.c -o main
Makefile
写法:先将各个子文件先输出为.o
文件,再集合起来输出为main
文件。
main: main.c tool.o
gcc main.c tool.o -o main
tool.o: tool.c
gcc -c tool.c
Makefile
文件里的命令是从下往上执行的。
当你需要发布源代码时,需要删除.o
文件和可执行文件,可以添加一个指令clean
main: main.c tool.o
gcc main.c tool.o -o main
tool.o: tool.c
gcc -c tool.c
clean:
rm *.o main
使用make clean
来执行这个clean
指令。
Makefile
中设置变量
eg:
CC = gcc
main: main.c tool.o
$(CC) main.c tool.o -o main
tool.o: tool.c
$(CC) -c tool.c
clean:
rm *.o main
当需要编译生成多个执行文件时,可以设置个all
变量
eg:
CC = gcc
CFLAGS = -lm -Wall -g
all: main_max main_min
main_max: main_max.c foo.o bar.o
$(CC) $(CFLAGS) main_max.c foo.o bar.o -o main_max
main_min: main_min.c foo.o bar.o
$(CC) $(CFLAGS) main_min.c foo.o bar.o -o main_min
foo.o: foo.c
$(CC) $(CFLAGS) -c foo.c
bar.o: bar.c
$(CC) $(CFLAGS) -c bar.c
clean:
rm *.o main_max main_min
附录:
VsCode代码格式化快捷方式
- 在Windows
Shift
+Alt
+F
- 在Ubuntu
Ctrl
+Shift
+I