寫一個簡單、通用的 Makefile

  用 GCC 想要 Build Code 的話,除了直接使用 gcc 以外,再來就是寫 Makefile 了。不過很多時候只是想要寫一個簡單的測試小程式或小工具,還要重新寫 Makefile 那就顯得相當麻煩。這篇筆記了一個簡單的通用 Makefile,只需要修改少數幾個地方就可以應付規模不大的程式。

範例

TARGET  = helloworld
SRC_DIR = ./
INC_DIR = ./

CFLAGS += -I$(INC_DIR)
SRC     = $(wildcard $(SRC_DIR)*.c)
OBJ     = $(SRC:%.c=%.o) #$(patsubst %.c, %.o, $(SRC))
DEP     = $(SRC:%.c=%.d) #$(patsubst %.o, %.d, $(OBJ))

.PHONY: clean

$(TARGET) : $(OBJ)
	$(CC) $(CFLAGS) $^ -o [email protected]

# Include all .d files
-include $(DEP)

# Build target for every single object file.
# The potential dependency on header files is covered by calling `-include $(DEP)`.
%.o : %.c
	$(CC) $(CFLAGS) -MMD -c $< -o [email protected]

## clean
clean:
	rm -f $(TARGET) $(OBJ) $(DEP)

簡要說明

  這個 Makefile 會抓取 $SRC_DIR 內的所有 .c 檔,Build 出 .o 並連結成 $TARGET。如果有額外的 include 路徑的話,可以在 $INC_DIR 內做指定。一般的小型程式很夠用囉!

Lin Chieh ( Jayce )

Lin Chieh ( Jayce )
設定目標、執行、回顧,人生就是在一次又一次的短跑衝刺中不斷成長前進!一個機械系的資訊人心得分享。

Visual Studio Code Remote - WSL 安裝教學

Visual Studio Code Remote - WSL可以讓 VS Code Server 實際執行在 WSL 裡面,只留 UI 介面在 Windows。這對某些插件非常有用,因為有些東西跑在 Linux 環境是比較容易的。另外 Visual Studio Code Remote 系列還包含 Remote - SSH 模式,這東西就更猛了,如果你的 Build Machine 是遠端的 Linux Server ,他可以直接透過 SSH 跑在 Linux Server 端,像是檔案搜尋等動作,直接執行在遠端 Linux 就會比透過 Samba 或 NFS 快上很多。 Continue reading