位置: 编程技术 - 正文

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

  • 计提本月个人所得税
  • 二手房交易需缴纳哪些费用
  • 中级财务管理与注会财务管理
  • 哪些支出可以税前扣除
  • 备用金可以不要发票吗
  • 普票开错了几个月可以重新开
  • 培训产生的费用
  • 退税发票认证流程
  • 免交增值税是什么意思
  • 公益性捐赠如何进行纳税调整
  • 授予股票期权分录
  • 专用设备抵免企业所得税目录
  • 发放短期外汇贷款的意义
  • 工会经费减免最新政策2020年山西
  • 资产损失税前扣除备查资料
  • 残疾人就业保障金是什么意思啊
  • 研发费用属于期余资产吗
  • Win11 Build 10.0.22000.51 预览版ISO镜像下载汇总(苹果M1也可用)
  • 什么货物出口最多
  • 公司帐户能直接转账吗
  • php数组查找函数
  • 个税多缴纳如何低下个月的税
  • 分手我不怕
  • php获取网页视频地址
  • 售后租回怎么理解
  • 销售退回的账务处理附什么底稿
  • 固定资产减值准备可以转回吗
  • 公司收到投资款怎么写收据?
  • php数组分为哪两种
  • 一个用于表示特定的web页的标识符url称为
  • centos7配置自动获取ip
  • ChatGPT的火爆出圈,你对它有几分了解?
  • 未核定月数是什么
  • 公司帐户到银行怎么取钱
  • 待处理财产损溢增加是哪方
  • 报销具体流程
  • 企业所得税预缴纳税申报表
  • 公益性捐赠支出纳税调整
  • ecs怎么用
  • 医疗服务比
  • 公司从一个帐户里扣税吗
  • 个体工商户增值税怎么计算
  • 用公司名义买的东西送礼需要归还么
  • 个体工商户定期定额怎么报税
  • 公司购买土地建厂房账务处理小企业会计准则
  • 账面价值和公允价值的关系
  • 收到费用发票分录
  • 小数点引起小数大小变化
  • 增值税发票超过多久不能抵扣
  • 当月作废的专票还是要交增值税吗
  • 企业签发转账支票
  • 出口退税登记的内容
  • 现金日记账1月份本年累计吗
  • 财务报表项目认定有哪些
  • 不动产经营租赁属于什么服务
  • 财务大写金额书写样板
  • 融资租入固定资产的入账价值
  • 解决口苦最快的方法
  • linux虚拟机基本操作
  • win7旗舰版和家庭版哪个对电脑要求低
  • win8.1设备管理器设置步骤
  • 怎么用苹果电脑打印照片
  • 五个常用的说明方法
  • win7 64位系统只有搜狗浏览器可以打开网页其他浏览器打不开的故障原因及解决方法
  • win8小键盘怎么打开
  • 批量装win7
  • linux zen3
  • linux如何限制指定ip访问
  • node.js实战
  • angular重新渲染组件
  • js正则表达式写法
  • python中的字符串可变吗
  • jQuery Ajax 加载数据时异步显示加载动画
  • amd模拟intel
  • 山东省地方税务局印花税核定征收管理办法
  • 信用社股金分红时间
  • 国家税务局总局政策咨询
  • 工信厅有什么实权
  • 青岛电子税务局电话人工客服电话
  • 深圳税务局官方客服电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设