您的位置:首页 > 其它

编译静态库和动态库的Makefile文件

2012-03-16 14:06 190 查看
写了一个编译静态库和动态库的Makefile文件,修改Makefile中STATIC的值可以编译静态库或动态库。完整的程序和Makefile文件在这里

MakefileSTATIC=0

LIBPATH=lib

CFLAGS=-Wall

LDFLAGS=-I$(LIBPATH) -L$(LIBPATH) -lfunc

ifeq ($(STATIC), 1)

LIB=$(LIBPATH)/libfunc.a

else

LIB=$(LIBPATH)/libfunc.so

CFLAGS+=-fPIC

endif

TARGET=main

SRC=main.c

LIBSRC=libinc.c libdec.c

LIBOBJ=$(addprefix $(LIBPATH)/, $(addsuffix .o, $(basename $(LIBSRC))))

all: $(LIB) $(TARGET)

target: $(TARGET)

lib: $(LIB)

$(LIBPATH)/%.o: %.c

$(CC) $(CFLAGS) -o $@ -c $<

ifeq ($(STATIC), 1)

$(LIB): $(LIBOBJ)

$(AR) -rcs $@ $^

else

$(LIB): $(LIBOBJ)

$(CC) -shared -o $@ $^

endif

$(TARGET): $(SRC)

$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)

clean:

rm -f $(TARGET) $(LIB) $(LIBOBJ)
http://www.cnblogs.com/faraway/archive/2009/03/31/1426292.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: