linux編譯多個源文件的程序比較麻煩,這下就需要通用的Makefile了,編譯的時候執行一下make命令就OK,下面介紹通用makfile的寫法。
假設現在有以下源文件:file1.h file1.c file2.h file2.c mainproc.c,程序的主函數在mainproc.c中。
#######通用Makefile模板########
# 目標文件名字
TARGET = Myproc
# c源文件
SRC = mainproc.c file1.c file2.c
# object文件
OBJS = $(SRC:.c=.o)
# 編譯器
CC = gcc
# 頭文件路徑,可以任意指定頭文件
INCLUDE = -I/usr/include/ -I/usr/include/ncurses
# 鏈接庫
LINKPARAM = -lpthread -lncurses
# 編譯選項
CFLAGS = -ansi -g -Wall
?
all:$(TARGET)
#?定義目標文件生成規則
$(TARGET):$(OBJS)
$(CC) -o $(TARGET) $(LINKPARAM) $(OBJS)
?
.SUFFIXES:.c
# 定義obejct文件生成規則
.c.o:
$(CC) $(LINKPARAM) $(INCLUDE) $(CFLAGS) -c $<
# 定義清理函數
clean:
rm $(OBJS) $(TARGET)