runxinzhi.com
首页
百度搜索
编译静态库和动态库的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)
相关阅读:
SpringBoot整合WebSocket的客户端和服务端的实现
Django实现发送邮件
Python环境搭建
Hexo+Gitee搭建个人博客
Chrome浏览器安装离线插件Markdown Here
TestLink测试用例管理工具使用说明
【odoo14】【好书学习】odoo 14 Development Cookbook【目录篇】
【odoo14】【开发侧】权限配置
【odoo14】【用户侧】权限配置
【odoo14】【知识点】视图的继承逻辑
原文地址:https://www.cnblogs.com/faraway/p/1426292.html
最新文章
Java安卓开发入门-TabLayout、Fragment和属性动画
Kotlin安卓开发入门-使用SearchView和RecyclerView实现搜索和展示
浅析uniapp
移动端vue项目内存泄漏问题排查指南
什么是“纯函数”?(#js纯函数 #函数式编程 #Redux Reducer)
HTML小技巧之——巧用<a>标签锚链接(#锚点链接 #页面特定位置 #锚点定位 #DOM定位 #hash路由中使用锚链接)
mysql实现用户分组+内容合并(group_concat)
php+swoole实现注解路由原理
php跨域的一些问题
docker遇到的最大的坑
热门文章
GitHub镜像
console.log 如何打印对象
支付宝小程序环境判断
怎么样给背景图加透明度
JavaScript如何实现上拉加载,下拉刷新?
什么是HTTP? HTTP 和 HTTPS 的区别?
开源免费的WordPress个人博客主题推荐
网页中的一键加QQ群、唤起QQ群聊天窗口
Mac系统之U盘重装(降级)
推荐一个github国内访问加速神器GitHub520
Copyright © 2020-2023
润新知