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
Last modification:June 26, 2021
兴趣使然