位置: 编程技术 - 正文

linux 下同名符号冲突问题解决方案(linux同名文件)

编辑:rootadmin

推荐整理分享linux 下同名符号冲突问题解决方案(linux同名文件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux替换同名文件,linux复制同名文件会覆盖吗,linux命名别名,linux同名文件,linux查找同名文件,linux 名字,linux命名别名,linux复制同名文件会覆盖吗,内容如对您有帮助,希望把文章链接给更多的朋友!

linux 下同名符号冲突问题解决方案

最近的工作中遇到如下令人蛋疼的问题:

Linux 下有三个模块aa、bb、cc,基本情况如下:

cc 编译连接得到 cc.so 动态库,cc 中有如下接口:

bb 编译连接得到 bb.a 静态库,bb 中有如下接口:

aa 编译后通过 -lbb 链接选项的方式连接 bb.a 得到 aa 可执行程序,并调用 bb.a 的接口函数 bb_fun():

工作中发现 aa 在运行时行为异常,总是有内存泄露和功能异常,通过定位发现问题集中在同名的 do() 函数上。通过输出打印发现程序中两次调用 do() 函数都调用到了 bb 模块中的 do() 函数,而 cc 模块中的 do() 函数从未被调用到,导致程序行为异常和内存泄露。

linux 下同名符号冲突问题解决方案(linux同名文件)

后经多方查证了解到因为 linux 程序中各个库中的符号表最终都会加载到程序所在的全局符号表中,此时如果有同名符号就只能调用到第一个加载进来的符号,也就是说后边加载的同名符号都会被之前的覆盖。cc 模块中的 do() 函数被 bb 模块中的 do() 函数覆盖了,所以无法被调用到。

废话不多说。。。

在试验过很多不满意的方法之后,最终的解决方法如下:

1.在 cc 的 makefile 中加入 -Wl,-Bsymbolic -Wl,--version-script,version 的连接选项,意思是用 version 文件中的脚本指定其导出哪些函数。

2.version 文件的实现如下:

意思是指定 cc 模块只导出接口函数 cc_fun,其余函数都设为 local 不做导出。

将该文件保存在 makefile 所在目录即可。

3.重新编译连接三个模块,问题解决。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Linux启动过程详细介绍 Linux启动过程详细介绍启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找

shell通过遍历输出两个日期范围内所有日期的方法 前言在平常c/c++开发中经常遇到日期处理的情形,例如求两个给定的日期之间相差的天数或者需要使用map存储两个固定日期范围内的所有日期。前段时间

利用Shell 脚本解决DDOS攻击问题 思路:主要利用awk,if结构,sort,uniq#!/bin/bashFilePath="access.log"awk'{print$1}'$FilePath|sort-rn|uniq-cip_count.logcatip_count.log|whilereadtext####读取文件内容,以行为单位

标签: linux同名文件

本文链接地址:https://www.jiuchutong.com/biancheng/378205.html 转载请保留说明!

上一篇:linux下tomcat常用操作(linux tomcat命令)

下一篇:Linux启动过程详细介绍(linux启动的过程)

  • 固定资产一次性折旧政策2023
  • 开具红字专用发票的条件
  • 购房补贴退契税多久到账
  • 医药行业发票税率
  • 资产负债表的其他流动资产包括哪些
  • 建筑工程机械服务有限公司企业
  • 退回股东投资款现金流量
  • 知道税负率和收入怎么算进项
  • 建筑施工企业存货是未结转的成本对吗
  • 财务费用汇兑损益是什么意思
  • 原材料出现贷方余额
  • 购买货物运费怎么做分录
  • 土地款印花税计入无形资产吗
  • 对于税收会计记账科目应该如何设置?
  • 公司向员工个人借款
  • 盈余公积什么时候提取
  • 抵扣进项税额转出分录
  • 营改增后的增值税税目税率表
  • 2021装修法律
  • 特许权使用费收入确认分录
  • 关于增值税报税的通知
  • 营改增对运输业的影响
  • 递延所得税资产怎么计算
  • 公户转账备注写错会查吗
  • 投资决策中常用的指标有
  • 代扣个税税率是多少
  • 出口退税系统中的出口货物已补税未退税证明怎么填
  • 不能取得发票的财务费用怎么做明细好一点
  • 不抵扣的发票是什么发票
  • 消费税有减免政策吗
  • 默认网关和dns怎么填
  • 报税时漏报进项怎么办
  • 工行对公贷款利息扣款时间是几点
  • 没收入长期待摊怎么办
  • 简易计税行业
  • php获取指定日期的时间戳
  • 增值税纳税人的相关规定
  • 七个超级实用的手机
  • 隐藏index.html
  • 原材料用于在建工程增值税如何处理
  • 计提票面利息
  • 机动车发票冲红太多会怎么样
  • 股东从公司账户上转钱违法吗
  • 上个月没有开票需要清卡吗
  • 融资租赁车辆过户给个人
  • MySQL Community Server压缩包安装配置方法
  • mysql启动器
  • 业务招待费计入其他业务成本
  • 营业成本的构成
  • 小型商贸企业
  • 农业用地租赁是免税的吗
  • 账外资产处理
  • 银行承兑汇票怎么做账务处理
  • 代扣代缴的个人所得税在现金流量表
  • 损益类科目如何填写手工总账
  • 其他应付款包括哪些内容
  • 党建经费可以购买什么
  • 高新企业 要求
  • 建筑公司直接把钱打到个人账户怎么走账
  • 全资子公司向母公司借款怎么做账
  • vultr vps搭建
  • ubuntu20.04怎么用
  • windows vista ie9
  • chcfg.exe是什么
  • ubuntu下安装QT教程
  • centos6.5服务器安装教程
  • mac os 切换
  • win7系统禁止更新
  • 深入分析南水北调工程面临的新形势心得体会
  • perl -pi
  • javascript函数大全
  • shell脚本实际运用
  • python利用range产生列表
  • python string包
  • 绿本补办需要本人去吗
  • 知道纳税人识别号怎么转账
  • 江西医保缴费怎么交
  • 上海川沙十八铺市场
  • 专利证书印花税怎么计算
  • 服饰类关税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设