位置: 编程技术 - 正文

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

  • 非居民个人利息所得个税税率
  • 主营业务收入科目按其所反映的经济内容不同
  • 未开发票如何确认收入并进行申报
  • 土地入固定资产还是无形资产
  • 存续分立的账务处理
  • 银行基本户可以变更成一般户吗
  • 个税申报本期收入包括社保吗
  • 仓储企业的成本有哪些
  • 来料加工企业的人工工资计入什么费用
  • 如何简单区分坏人和坏人
  • 报销业务招待费用主题
  • 公司报销专用发票
  • 核销贷款收回会计分录
  • 银行贷款利息支出汇算清缴需要调整吗
  • 固定资产发票未到怎么提折旧
  • 地税退税政策
  • 出口发票税率开错了怎么办
  • 教育附加费的计算方法
  • 租用仓库需要代扣代缴企业所得税吗
  • 发票丢失联次
  • 一个月无纳税凭证怎么处理
  • 展会展位费发票税率
  • 公司固定资产一般谁负责
  • 车间工人工资计入
  • 企业支付工商年费怎么查
  • 专用发票可以抵税是什么意思
  • u盘写入扇区错误
  • 计算工业总产值指数
  • 企业所得税调增调减怎么理解
  • 总公司给子公司打款 如何做凭证
  • 前期差错更正怎么理解
  • 递延性负债
  • php新手入门
  • 增值税纳税人的相关规定
  • 纳税检查调整的销售额确认收入吗
  • 使用小程序实现im
  • swatch of
  • 企业待报解预算收入的分录
  • 帝国cms移动端设置教程
  • 为什么银行结息不加入账户
  • 年报数据和四季度数据一样吗
  • 根据不同资产涉及的税有哪些
  • 公司承担员工的社保费会计分录
  • 技术转移转化是干什么的
  • 工伤保险如何认定
  • 即征即退收入不能税前扣除
  • 个税专项附加扣除标准2023
  • sql server 2008 安装文件
  • 模板的固定
  • 不满足收入确认条件的会计分录
  • 企业合并的账务处理
  • 工会经费计提比例是应发工资还是实发工资
  • 投资者投入固定资产成本
  • 奖金如何做账分录
  • 原料到产品
  • 会计科目用错如何改正
  • 返利开红字发票怎么做账
  • 减免增值税如何申报
  • 费用报销银行转账用途怎么写
  • 本年利润怎么结账
  • 出纳建账的基本流程
  • 出纳账户怎么设置
  • 微软10月已停止服务中国用户
  • centos占用内存高
  • rhel7.2安装
  • ubuntu 网络设置命令
  • ubuntu怎样调出命令行
  • mac使用ios
  • Windows tips小技巧
  • xp直升win7
  • xp创建VPN连接图文教程
  • 华硕安装win7系统
  • win8.1设置在哪
  • win7软件界面显示不全怎么办
  • opengl es3.0metal
  • window.open打开窗口设置背景色
  • NGUI的depth和Z轴的关系
  • jquery怎么判断复选框选中
  • 重庆税筹公司
  • 从事农业种植是干什么的
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设