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)

     

  • 相关阅读:
    Oracle-DQL 7- 集合操作
    Oracle-DQL 6- 子查询
    Oracle-DQL 5- 分组函数(多行函数)
    Oracle-DQL 4- 多表查询
    Oracle-DQL 3- 单行函数
    构建gulp项目
    重开Vue2.0
    ES6
    emmet简单记录
    webpack 3.X研究
  • 原文地址:https://www.cnblogs.com/faraway/p/1426292.html
Copyright © 2011-2022 走看看