位置: 编程技术 - 正文

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

  • 个人所得税纳税记录
  • 事业单位申请电采暖电表免费么新疆昌吉
  • 应付票据现金流量现值计算公式
  • 暂估资产会计处理
  • 一般纳税人取得普票怎么做账
  • 非同一控制企业合并下,购买日将
  • 财务报表分析方法有
  • 小规模纳税人进材料怎么做账
  • 进项税申报但未抵扣
  • 餐饮增值税
  • 做内账有风险还是做外账有风险
  • 失控包括
  • 纳税人跨县(市、区)提供建筑服务
  • 员工离职赔偿计入什么科目
  • 资产负债表应收账款是负数怎么回事
  • 建筑行业一般纳税人税率是多少
  • 工会经费漏申报去大厅怎么处理
  • 税收征管法实施细则 不予加收滞纳金
  • 工资 转账
  • 开票的附加税是多少
  • win10永久激活2021
  • 税控盘进项税已抵扣如何转出分录
  • 电脑自动安装乱七八糟的软件win7
  • win10蓝牙无法连接可以尝试以下操作
  • php excute
  • 报废汽车残值收入如何计税
  • php函数写法
  • 3d reconstruction
  • 遮天传游戏视频
  • gpt参数
  • 不开票销售收入怎么做账务处理
  • 成本票不够怎么交税
  • electron开发的应用程序
  • 增值税出口税
  • 为什么增值税最后的负税人是消费者企业还要尽量少交税
  • 工资外一次性收入88000交多少税
  • 个人借款利息收入缴纳个税吗
  • 在ubuntu中安装win10
  • dedecms模版
  • 企业所得税预缴少缴纳了,需要交滞纳金吗?
  • 城市维护建设税,教育费附加,地方教育费附加
  • 土地入固定资产计提折旧吗
  • 教育培训行业人员
  • 年末结转步骤
  • 办公室用茶叶怎么入账
  • 出口退税企业退税流程
  • 如何加强存货管理,提高存货周转率
  • 抵扣认证的发票需要还回去吗
  • 会计档案步骤
  • 房地产开发企业资质管理规定
  • 备查账一般采用什么账簿
  • windows8.1大小
  • windowssystem32configsystem下载
  • 笔怎么画最好看
  • win10系统怎么清理
  • 系统中想禁止运行怎么办
  • win10系统应用和浏览器控制出现感叹号
  • 电脑safari点击没反应
  • win7win10双硬盘双系统
  • win8磁盘占用率高怎么处理
  • linux更改
  • 微软6月24
  • windows10电脑声音
  • Android OpenGL ES(三)----编程框架
  • js正则用法
  • js querySelector() 使用方法
  • unity3d c++开发
  • java回收机制原理
  • jQuery中ajax的load()与post()方法实例详解
  • Ubuntu14.04 Android 源码编译
  • 盗梦英雄限时占卜顺序
  • 用javascript
  • 使用jQuery调用XML实现无刷新即时聊天
  • unity角色扮演游戏
  • 增值税9%税率适用范围2023
  • 江西2022年选调
  • 申报期包括不包括最后一天
  • 大连市网上税务申报平台
  • 怎样查手机是否维修过
  • 河北地税局电话号码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设