喜欢的东西:
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