位置: 编程技术 - 正文

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启动的过程)

  • 销售额是含税价还是不含税价
  • 无偿使用场地涉及的问题
  • 无力支付什么意思
  • 收到进项发票已认证,对方冲红重开,我方凭证什么做
  • 企业购买房产每年需要交什么税
  • 常见的会计凭证有哪些
  • 用友如何结转本年利润到未分配利润
  • 中小型物流公司简介
  • 房地产开发企业预缴增值税
  • 股票质押式回购交易业务
  • 增值税专用发票抵扣期限
  • 建设单位收到施工承包单位的单位工程验收申请后应组织
  • 进口关税退税计入什么科目
  • 出口退税附加税什么时候缴纳
  • 小规模季度不超过45万的税收优惠
  • 核定征收的企业需要汇算清缴吗
  • 非征期不能抄报
  • 红字发票开具只能针对一份发票 不可以只冲红其中一部分吗?
  • 减免税到什么时候
  • 加盟费返款怎么入账
  • 其他应付款借方余额表示什么
  • 内含报酬率的计算公式插值法
  • 纳税等级信息查询
  • 个人所得税减免申请
  • 税务申报系统叫什么
  • 视同销售的计税依据
  • 电子汇款收入是什么意思
  • 分公司可以向总公司缴纳管理费吗
  • 出口退税新政策对出口贸易的影响
  • 违约金合同条款怎么写
  • office2016安全模式
  • 电脑方案表格
  • 微软正在更新office
  • 分期付款购买的商品
  • wordpress注册界面
  • ftp指什么
  • 给企业法人缴纳社保流程
  • 卖出回购证券的钱怎么算
  • crontab不执行的原因和解决方案
  • 空调维修费进什么会计科目
  • 固定资产减少的账务处理
  • 社会团体税收政策
  • 没有销售收入月报怎么填
  • 职工薪资包括
  • 每股收益率计算公式举例
  • 预收账款多好还是少好
  • 如何确定固定资产的原始成本
  • 家禽养殖企业
  • SQL SERVER 2008 R2 重建索引的方法
  • SqlServer 2005 T-SQL Query 学习笔记(4)
  • 发票税率开错了3%开成5%怎么办?
  • 营业外收入是指企业确认与企业生产经营活动没有
  • 企业税负是否包含增值税
  • 收到银行的贷款怎么做会计分录
  • 社保缴费基数调整后对个人的影响
  • 省外出差
  • 网络管理费用
  • 物料损失怎么入账
  • 累计折旧税率
  • 设置mysql数据库字符集的语句
  • sql server 2019自定义安装教程
  • window系统怎么更新版本
  • mac截图清晰度设置方法
  • windows提示音神曲
  • 服务器迁移至新服务器方法
  • linux targz
  • win7系统硬盘
  • git 进阶
  • koeidsnd.dll
  • li的简单应用
  • 用python抓取网页数据的代码
  • unity3d效果图
  • listview属性设置
  • 安卓两页合并到下一页
  • wordpress 0day
  • 安卓点赞脚本
  • 江苏地税电子税务局官网登录
  • 房产税怎么计提和缴纳分录
  • 吉林税务发票自动查询系统网
  • 电子税务局app扫脸认证
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设