zoukankan      html  css  js  c++  java
  • 编译静态库和动态库的Makefile文件


    写了一个编译静态库和动态库的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)
  • 相关阅读:
    结构型模式上
    创建型模式下
    创建型模式中
    创建型模式上
    设计模式总述
    Java中事件机制
    UI常用控件
    UITextField和UIViewConteoller
    UIScrollView 和 UIPageControl
    分栏视图控制器
  • 原文地址:https://www.cnblogs.com/iapp/p/3631774.html
Copyright © 2011-2022 走看看