位置: 编程技术 - 正文

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

  • 增值税价外费用开票内容
  • 股票交易印花税降低
  • 没有提取盈余公积的情况
  • 小企业会计准则会计科目表
  • 适用会计制度备注怎么填?
  • 营改增后建筑业怎么开票
  • 消费税在流通环节征税吗
  • 劳务派遣公司工作内容描述
  • 收到的油费预付怎么入账
  • 个人开利息发票的税率与会计分录
  • 个税税费返还
  • 什么是股息红利扣税
  • 土地转让增值税计税依据
  • 普通发票年份代码有什么具体含义?
  • 固定资产怎么进入生产成本
  • 企业劳务外包取费的标准以及依据是什么?
  • 加计抵减10%政策文件
  • win10设置里没有飞行模式
  • 关闭系统保留空间
  • 公司个人股份转让需要缴税吗
  • 企业发生待摊费怎么处理
  • 期末留抵税额的减值
  • 入库单做账是预付款还是应付款
  • windows11入门
  • dreamweaver 是什么
  • win10电脑时间改了又跳回去
  • php readdir函数
  • php变量用什么符号
  • 图像分割 unet
  • 企业所得税汇算表
  • 坏账准备怎么做资产负债表
  • 同一控制下企业合并会计准则
  • php分页页码动态的实现
  • 可变现净值相关税费包括消费税吗
  • thinkphp-5.0
  • java如何实现异步处理
  • vue的watch监听props
  • React Hook - useState函数的详细解析
  • 奖金的发放应做到
  • 建筑业总包增值税
  • 企业所得税年报滞纳金从哪天开始算
  • 注册一个公司没有流水可以吗
  • 一般纳税人需要报个税吗
  • sql 列数
  • 同在一个单位
  • 教育费附加退费
  • 行政事业单位银行开户规定
  • 建设期贷款利息定义是什么
  • 国有企业无偿划转股权缴纳印花税
  • 补交增值税和滞纳金怎么入账
  • 购买方已认证销售方作废
  • 用友t3计提折旧了没有生成凭证
  • 百分百控股代表着什么
  • 购买国家机关证件罪量刑标准
  • 建筑工地塔吊租赁会计分录
  • 小规模纳税人超过30万是全额纳税吗
  • 事业单位的非税收入账务处理
  • 备查账簿的格式和登记方法
  • mysql(master/slave)主从复制原理及配置图文详解
  • linux CentOS6.5 yum安装mysql5.6
  • xp如何把ie浏览器设置为默认浏览器
  • win7和2008r2
  • win10开机提醒
  • centos启动卡在了启动界面
  • win10 Mobile 10586.36预览版更新了哪些内容?
  • 翻转动画怎么做
  • 微信 cookies
  • ubuntu用root运行
  • perl的$_
  • vmwareUbuntu虚拟机硬盘扩容
  • bootstrap技术
  • 安卓手机引导模式设置
  • python xml.etree.ElementTree遍历xml所有节点实例详解
  • 关于Colloder事件
  • 小规模纳税人开1%普票怎么报税
  • 湖北税务查询电话
  • 法人注册怎么注册
  • 生育保险证明去哪里办
  • 房屋契税交错了能退吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设