zoukankan
html css js c++ java
编译静态库和动态库的Makefile文件
写了一个编译静态库和动态库的Makefile文件,修改Makefile中STATIC的值可以编译静态库或动态库。完整的程序和Makefile文件在
这里
。
Makefile
STATIC=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
最新文章
.net core3.1 如何设置跨域、SignalR如何设置跨域
Centos 7 redis 配置笔记 设置密码更改端口
如何利用EFCore实现自动化的CodeFirst
C#进阶之特性(Attribute)
.NetCore如何将特性和依赖注入有效结合
C#进阶之反射(Reflection)
反射机制 小小谈
【Servlet与JSP】请求转发与重定向
Urho3D 在Win10下编辑器崩溃的解决方案
使用OpenGL进行Mandelbrot集的可视化
热门文章
软件工程第5次作业的代码审查信息
软件工程第4次作业(第1次结对作业)——代码复审
[未完结]数字微分分析法的直线绘制(DDA)
软件工程第1次作业——走在码路上
Markdown 语法的超快速上手
Python:水仙花数
Python:对输入的单词进行字典序排序输出
Python:文件常用操作
Oracle- 函数大全
Oracle- 数据库知识回顾
Copyright © 2011-2022 走看看