在Linux中,Makefile是一個包含一系列目標和依賴關系的文件,用于告訴make命令如何編譯和構建代碼。Makefile通常包含以下內容:
定義變量:可以定義一些變量,用于存儲編譯過程中需要使用的參數,例如編譯器名稱、編譯選項等。
定義規則:規則由一個目標、一個冒號和一個或多個依賴項組成。目標是生成的文件,依賴項是生成目標所需的文件或其他目標。規則告訴make命令如何生成目標文件。
命令:規則后面可以跟著一行或多行命令,用于執行構建過程。這些命令通常是編譯器命令或復制命令等。
示例Makefile:
CC = gcc
CFLAGS = -Wall
all: program
program: main.o func.o
$(CC) $(CFLAGS) -o program main.o func.o
main.o: main.c
$(CC) $(CFLAGS) -c main.c
func.o: func.c
$(CC) $(CFLAGS) -c func.c
clean:
rm -f *.o program
上面的示例Makefile定義了變量CC和CFLAGS,然后定義了三個規則:all、program和clean。all規則指定了目標為program,依賴于main.o和func.o,執行命令為編譯鏈接這兩個目標文件生成可執行文件program。clean規則用于清除生成的目標文件和可執行文件。
要使用Makefile構建項目,只需在項目目錄下運行make命令即可。make命令會根據Makefile中的規則和依賴項來編譯和構建代碼。