怎么避免生成带版本后缀的共享库(即.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
相关问题
DevEco Studio 怎么生成 RGB565 bin 文件
1264浏览 • 1回复 待解决
XamarinStudio如何生成mdb文件?
346浏览 • 1回复 待解决
DevEco Studio开发如何引入.so
7976浏览 • 1回复 待解决
数据连接url后缀太长了
1178浏览 • 1回复 待解决
如何使用脚本编译生成HAP文件
5084浏览 • 1回复 待解决
Text怎么显示html标签文本
2293浏览 • 1回复 待解决
如何使用deveco 生成app文件
7630浏览 • 1回复 待解决
sql 怎么单位字符串排序?
598浏览 • 1回复 待解决
如何开启明文传输 http 请求
7859浏览 • 4回复 待解决
Native文件所在路径
124浏览 • 1回复 待解决
如何编译底层so有懂吗?
523浏览 • 1回复 待解决