当前位置:网站首页>分享一个通用的so动态库的编译方法
分享一个通用的so动态库的编译方法
2022-07-06 17:32:00 【wandersky0822】
CC :=$(CROSS_COMPILE)gcc
LD :=$(CROSS_COMPILE)ld
CFLAGS := -fPIC -Wall
LDFLAGS := -shared -Wl,-soname=libdrdev.so.2
SOURCE := $(wildcard *.c)
OBJS := $(patsubst %.c,%.o,$(SOURCE))
TARGET_LIB := libdrdev.so.2.1.0
all:$(OBJS)
@echo $(OBJS)
# $(LD) $(LDFLAGS) -o $(TARGET_LIB) $(OBJS)
$(CC) $(LDFLAGS) -o $(TARGET_LIB) $(OBJS)
%.o:%.c
@echo Compiling $< ...
$(CC) -c $(CFLAGS) $< -o $*.o
.PHONY:clean
clean:
rm $(TARGET_LIB) *.o -rf
几个知识点,解释如下:
-fPIC 位置无关
-shared 顾名思义,生成共享库
$(wildcard *.c) 在文件夹下列出所有.c 文件
$(patsubst %.c,%.o,$(SOURCE)) 在$(SOURCE)中查找.c文件,替换为.o
%.o:%.c %通配符,猜也能猜个差不多
$< 所有依赖
$* 所有目标%之前的部分。
边栏推荐
猜你喜欢
golang中的Mutex原理解析
Windows installation mysql8 (5 minutes)
[牛客] [NOIP2015]跳石头
动态规划思想《从入门到放弃》
Let's see through the network i/o model from beginning to end
UI control telerik UI for WinForms new theme - vs2022 heuristic theme
LLDP兼容CDP功能配置
[case sharing] basic function configuration of network loop detection
[batch dos-cmd command - summary and summary] - string search, search, and filter commands (find, findstr), and the difference and discrimination between find and findstr
筑梦数字时代,城链科技战略峰会西安站顺利落幕
随机推荐
Meet in the middle
Tencent cloud webshell experience
Explain in detail the matrix normalization function normalize() of OpenCV [norm or value range of the scoped matrix (normalization)], and attach norm_ Example code in the case of minmax
A brief history of deep learning (I)
[Niuke] b-complete square
[100 cases of JVM tuning practice] 05 - Method area tuning practice (Part 2)
[牛客] [NOIP2015]跳石头
Taro 小程序开启wxml代码压缩
Installation and testing of pyflink
pytorch之数据类型tensor
Cause of handler memory leak
【案例分享】网络环路检测基本功能配置
LLDP兼容CDP功能配置
线段树(SegmentTree)
【js】获取当前时间的前后n天或前后n个月(时分秒年月日都可)
[牛客] B-完全平方数
NEON优化:性能优化常见问题QA
Batch obtain the latitude coordinates of all administrative regions in China (to the county level)
Periodic flash screen failure of Dell notebook
There is an error in the paddehub application