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)
查看全文
相关阅读:
Visual Studio 2019 使用 Web Deploy 发布远程站点到IIS服务器
postman下载地址
ASP.NET Core开发-Docker部署运行
C# ffmpeg 视频处理格式转换具体案例
C# ffmpeg 视频处理格式转换和添加水印
C# ffmpeg 视频处理
Tomcat 安装与配置
Maven 快速入门
Jenkins 快速搭建
Google SRE 读书笔记 扒一扒SRE用的那些工具
原文地址:https://www.cnblogs.com/faraway/p/1426292.html
最新文章
ExtJS 4.2 教程-08:布局系统详解
实用ExtJS教程100例-004:等待对话框Ext.MessageBox.wait
实用ExtJS教程100例-003:进度条对话框Ext.MessageBox.progress
实用ExtJS教程100例-002:MessageBox的三种用法
实用ExtJS教程100例-001:开天辟地的Hello World
人月神话-外科手术队伍:团队建设
3.5星|《论大战略》:西方从古至今的一些知名领袖们做选择的故事
还原古代战争细节的8本书,好书7本
科技类好书16本
4星|《中国古代的战争之道》:土木堡之后明朝过度关注蒙古未能正确评估满族的威胁
热门文章
3.5星|《为什么:关于因果关系的新科学》:如何从纷繁的数据中找到因果关系
4星|《病毒星球》:人类探索病毒的有趣故事
3星|何文彬《商业产品经理》:好的产品经理都是商业产品经理
领导力相关7本书,好书1本
2星|《逻辑思维与诡辩》:用老旧故事剖析诡辩方法,逻辑不够清楚
3星|《掌控习惯》:每天进步一点点,逐步养成好习惯
HTTPWebrequest上传文件--Upload files with HTTPWebrequest (multipart/form-data)
HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法 【问题】
C#中HttpWebRequest的GetRequestStream执行的效率太低,甚至偶尔死掉
C# 获取USB设备信息
Copyright © 2011-2022 走看看