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)
查看全文
相关阅读:
Apache 的 ab 压测工具快速使用
Go_22: Golang 命令行 test 应用
Go_21: Golang 中 time 包的使用二
ElasticStack系列之十八 & ElasticSearch5.x XPack 过期新 License 更新
Go 语言编程规范
ElasticStack系列之十七 & 大文本搜索性能提升方案
ElasticStack系列之十六 & ElasticSearch5.x index/create 和 update 源码分析
ElasticStack系列之十五 & query cache 引起性能问题思考
golang 配置文件读取
pandoc安装
原文地址:https://www.cnblogs.com/iapp/p/3631774.html
最新文章
linux下Clang和gcc的区别
Linux下gcc和g++的区别
MyISAM和InnoDB的索引实现
B树、B-树、B+树、B*树
Mysql中MyISAM引擎和InnoDB引擎的比较
vue项目打包后路径出错
安装vue后报错 bash: vue: command not found
js插件实现点击复制内容到粘贴板,兼容IE8
将url动态转换成二维码插件
前端显示带格式的字符串内容
热门文章
切割数组
css实现栏目两边斜线的效果
使用ie的filter来解决rgba在IE8下没有效果的问题
新手必读-区块链浅显道理
区块链的科普
区块链的几种认识
10分钟搞定区块链含义
git 常用命令总结
Linux 之 crontab 使用
ElasticStack系列之十九 & bulk时 index、create 和 update 的区别
Copyright © 2011-2022 走看看