怎么避免生成带版本后缀的共享库(即.so文件)

怎么避免生成带版本后缀的共享库(即.so文件)

HarmonyOS
2024-01-31 20:35:04
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
r660926

要避免生成带版本后缀的共享库(即.so文件),需要在编译和链接阶段做适当的调整。

1、不指定版本号:在链接共享库时,不要使用-Wl,-soname,libname.so.X 或类似的方式来指定动态链接库的soname。这样链接器不会在输出的.so文件名中包含版本信息。

2、手动重命名:如果共享库文件已经生成,但带有版本信息,你可以简单地重命名库文件,去掉版本后缀。

3、修改Makefile或构建脚本:请确保构建配置文件中(如Makefile、CMakeLists.txt等),不包含任何自动在生成的库文件名中添加版本号的命令或脚本。

例如,如果你使用的是Makefile,可能会看到类似以下的命令:

libname.so.X.Y.Z: $(OBJS) 
// $(CC) -shared -Wl,-soname,libname.so.X -o $@ $(OBJS) $(LDFLAGS)

应该将其改为类似以下的命令:

libname.so: $(OBJS) 
// $(CC) -shared -o $@ $(OBJS) $(LDFLAGS)

如果使用CMake,请查看你的CMakeLists.txt文件是否包含设置VERSION或SOVERSION属性的命令。移除或注释掉这些命令也可以避免版本后缀的生成:

// # set_target_properties(mylib PROPERTIES VERSION 1.2.3 SOVERSION 1)
分享
微博
QQ
微信
回复
2024-02-01 22:21:57
相关问题
Worker无法识别ets后缀文件
244浏览 • 1回复 待解决
HarmonyOS 有关共享问题
338浏览 • 1回复 待解决
DevEco Studio 怎么生成 RGB565 bin 文件
2904浏览 • 1回复 待解决
数据连接url后缀太长了
3002浏览 • 1回复 待解决
ArkTS文件后缀是否需要全部改成ets
1978浏览 • 1回复 待解决
关于 SO 文件使用问题
129浏览 • 1回复 待解决
HarmonyOS 如何适配自己so
440浏览 • 1回复 待解决
Text怎么显示html标签文本
4272浏览 • 1回复 待解决
有没有拦截器网络可以封装
249浏览 • 1回复 待解决
Text怎么解析展示html标签文本?
1982浏览 • 1回复 待解决
XamarinStudio如何生成mdb文件?
1882浏览 • 1回复 待解决
是否有预编译 OpenSSL so 文件
32浏览 • 1回复 待解决
sql 怎么单位字符串排序?
2207浏览 • 1回复 待解决