在CentOS系統中,使用Makefile可以幫助你自動化編譯和構建C或C++項目。以下是一個簡單的示例,展示如何在CentOS上使用Makefile來編譯一個C項目。
假設你有一個簡單的C程序,包含兩個源文件 main.c
和 utils.c
,以及一個頭文件 utils.h
。
project/
├── main.c
├── utils.c
└── utils.h
創建一個名為 Makefile
的文件,內容如下:
# 編譯器
CC = gcc
# 編譯選項
CFLAGS = -Wall -g
# 目標文件
TARGET = myprogram
# 源文件
SRCS = main.c utils.c
# 對象文件
OBJS = $(SRCS:.c=.o)
# 默認目標
all: $(TARGET)
# 鏈接目標文件生成可執行文件
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $@ $^
# 編譯源文件生成對象文件
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
# 清理生成的文件
clean:
rm -f $(OBJS) $(TARGET)
CC
:指定編譯器,這里使用 gcc
。CFLAGS
:編譯選項,-Wall
表示顯示所有警告,-g
表示包含調試信息。TARGET
:最終生成的可執行文件的名稱。SRCS
:源文件列表。OBJS
:對象文件列表,通過將 .c
替換為 .o
得到。all
:默認目標,表示生成最終的可執行文件。$(TARGET)
:鏈接對象文件生成可執行文件的規則。%.o: %.c
:編譯源文件生成對象文件的規則,%
是通配符。clean
:清理生成的文件,刪除對象文件和可執行文件。打開終端,進入項目目錄:
cd /path/to/project
運行 make
命令來編譯項目:
make
這將根據 Makefile
中的規則編譯源文件并生成可執行文件 myprogram
。
運行生成的可執行文件:
./myprogram
如果你想清理生成的文件,可以運行:
make clean
這樣,你就可以在CentOS上使用Makefile來自動化編譯和構建C項目了。根據項目的復雜程度,你可以進一步擴展和自定義 Makefile
。