linux修改http版本信息,动态库中的soname中版本号的修改
soname(简单共享名,Short for shared object name),在linux下使用动态库时,经常会发现明明编译时指定的是libA.so,可是程序运行时或通过ldd查看依赖却是libA.so.XXX,这个就是通过-Wl,-soname指定的,soname的指定方式通过有以下两种方式:
(1)直接在Makefile中通过-Wl,-soname ,如:
-Wl,-soname,libssl.so.${SHLIB_MAJOR}.${SHLIB_MINOR}
(2)通过libtool的-version-info(最终也是使用-Wl,-soname),如:
Makefile中定义如下:
libosipparser2_la_LDFLAGS = -version-info $(LIBOSIP_SO_VERSION) \ $(PARSER_LIB) $(EXTRA_LIB) -no-undefined
libosipparser2_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libosipparser2_la_LDFLAGS) $(LDFLAGS) -o $@
实际参数如下所示:
./libtool --tag=CC --mode=link aarch64-linux-android-gcc -O2 -Wno-system-headers -fvisibility=hidden -o libcares.la -rpath /home//sipproto/src/libcares-1.7.4/../../objects/lib -version-info 2:0:0 ares__close_sockets.lo
搞清楚设置方式后要修改so库为不带版本号的简单多了:
(1)去除-soname后的库名,直接改成.so结尾
ps:当然不可能这么简单,这个还要修改一片相关联的变量,以openssl.0.9.7例,需要修改以下文件
Makefile.ssl
Makefile
(2)将-version-info改成-avoid-version
以上就是指定和修改so库的两种方式,如果其他方式请告知
linux修改http版本信息,动态库中的soname中版本号的修改相关推荐
- 如何让linux加载当前目录的动态库
debian从7.0开始支持multiarch,64位库的路径改到/usr/lib/x86_64-linux-gnu了,mint.ubuntu这些衍生版有没有跟着改我就不清楚了. deepin lin ...
- [Linux] 如何让linux加载当前目录的动态库
linux的excutable在执行的时候缺省是先搜索/lib和/usr/lib这两个目录,然后按照ld.so.conf里面的配置搜索绝对路径,linux缺省是不会在当前目录搜索动态库的.window ...
- linux定位so快捷方式_Linux动态库(.so)搜索路径 | 学步园
众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib.动态库被创建后,一般都复制到这两个目录中.当程序执行时需要某动态库, 并且该动 态库还未加载到内存中,则系统会自动到这两个默认搜索 ...
- linux 下查看应用版本信息,Linux下查看版本信息
Linux下如何查看版本信息, 包括位数.版本信息以及CPU内核信息.CPU具体型号等. 1.# uname -a (Linux查看版本当前操作系统内核信息) 2.# cat /proc/vers ...
- 怎么看linux Java版本,查看linux的java版本信息
查看linux的java版本信息 [2021-02-10 01:02:40] 简介: linux系统查看jdk版本的方法是:可以通过[java -version]命令来查看.具体方法是:1.打开终端 ...
- 如何查看Linux的java版本,查看linux的java版本信息
查看linux的java版本信息 [2021-02-10 01:02:40] 简介: linux系统查看jdk版本的方法是:可以通过[java -version]命令来查看.具体方法是:1.打开终端 ...
- linux 怎么查看go版本,如何在Linux下查看版本信息
Linux下如何查看版本信息, 包括位数.版本信息以及CPU内核信息.CPU具体型号等等,整个CPU信息一目了然. 1.# uname -a (Linux查看版本当前操作系统内核信息) Linux ...
- linux下查看bios命令,Linux查看BIOS版本/信息详情
Linux查看BIOS版本/信息详情 命令如下: #dmidecode -t 0 例子: root@DS:~# dmidecode -t 0 # dmidecode 2.12 # SMBIOS ent ...
- 查看Linux当前操作系统版本信息常用命令
查看Linux当前操作系统版本信息常用命令 Linux查看当前操作系统版本信息 Linux查看版本当前操作系统内核信息 linux查看版本当前操作系统发行信息 Linux查看cpu相关信息,包括型号. ...
最新文章
- senfile函数实例的运行过程截图
- linux操作系统的特点有哪些,LINUX操作系统有哪些概念和特点?
- 分享丨强化学习是针对优化数据的监督学习?
- oj上c语言编译错误,名字的漂亮度(华为OJ)C语言版本(提示格式错误,但是编译器没有报错,知道的网友提个意见)...
- 陌上花开 HYSBZ - 3262 (CDQ分治)
- Yii2.0 rules常用验证规则
- LIVE555play流程
- android apk 微信登入_Android集成微信登录的步骤详解
- 台达ASDA-A2速度模式调试方法
- 实现基于SSM开发房屋租赁系统
- 【FFmpeg系列】使用FFmpeg实现视频图像旋转、翻转或转置
- word文档批量处理表格
- Android多语言支持二
- 安卓游戏广告加速插件_这是一个你值得拥有的安卓小插件.....
- cJSON详细剖析(四)----cJSON_Print()函数
- 2.4.2 死锁的处理策略-预防死锁(破坏互斥条件、破坏不可剥夺条件、破坏请求和保持条件、破坏循环等待条件)
- mac 默认输入法禁用,删除?
- bat命令映射网络驱动器
- html中设置浏览器解码方式
- 电子配线架的应用和技术
热门文章
- Python提取 Gprmax 3.0 的out文件数据
- daemons java,java.lang.ThreadGroup.isDaemon()方法实例
- 手持gps坐标转换参数求解方法及在excel中的实现_地质填图手持GPS的校正方法
- Linux 安装多个版本JDK并设置默认版本
- 第十章:在Spark集群上掌握比较重要的图操作之Computing Degree
- 微信小程序canvas绘制图片的注意事项---不能是网络图片
- php 获取config,PHP MVC如何自动调用config?
- 微服务主见传递ID还是json_后台管理系统之微服务搭建
- python求100以内的素数和(只作新手参考)
- 编程实现Strassen矩阵乘法