喜歡的東西:
program_NAME := a.out
SRCS = mylib.c prog.c
.PHONY: all
all: $(program_NAME)
$(program_NAME): $(SRCS)
ar -rcs libmylib.a mylib.o
cc -m32 prog.o -L. -lmylib
可能讓你開始
纔剛剛開始使用的makefile自己,我認爲他們是非常棘手,但一旦你讓他們的工作,他們讓生活變得更加簡單(這的人概率充滿錯誤的,但一些更經歷了這麼民間將概率能夠幫助解決這些問題)
至於運行時,請務必將文件保存爲「Makefile文件」(大小寫很重要)
然後從CMD線(確保你包含Makefile文件cd到DIR):
$ make
完蛋了!
UPDATE
如果中間靜庫是多餘的,你可以用一個Makefile這樣跳過它:
program_NAME := a.out
SRCS = mylib.c prog.c
OBJS := ${SRCS:.c=.o}
CFLAGS += -m32
program_INCLUDE_DIRS :=
program_LIBRARY_DIRS :=
program_LIBRARIES := mylib
CPPFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir))
LDFLAGS += $(foreach librarydir,$(program_LIBRARY_DIRS),-L$(librarydir))
LDFLAGS += $(foreach library,$(program_LIBRARIES),-l$(library))
CC=cc
LINK.c := $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
.PHONY: all
all: $(program_NAME)
$(program_NAME): $(OBJS)
$(LINK.c) $(program_OBJS) -o $(program_NAME)
來源
2012-08-03 07:42:13
bph
這裏有一點冗餘。使用靜態庫時,如果只將'.o'文件直接鏈接到應用程序中,而不是先將它們填充到'.a'文件中,則會得到相同的結果。畢竟,靜態庫只不過是粘在一起的一堆'.o'文件。 – 2012-08-03 07:52:49