嵌入式linux系统中动态链接库实现详解

devtools/2024/10/17 21:36:28/

       大家好,linux系统中动态库是如何实现相互链接的?今天简单聊聊动态链接库的实现原理。

假设有这样两段代码,第一段代码定义了一个全量变量a以及函数foo,函数foo中引用了下一段代码中定义的全局变量b。

图片

第二段代码定义了全局变量b以及main函数,同时在main函数中调用了第一个模块中定义的函数foo。

接下来编译器出场,编译器会把这个两个源文件编译成对应的目标文件。

目标文件中主要有两部分,代码段和数据段,这两部分里面分别包含什么内容呢?

我们定义的全局变量会被放到数据段,代码被编译生成的二进制指令会被放到代码段,第二个目标文件也一样。

图片

注意看第一段代码,这里引用了一个其它模块定义的全局变量b,这一信息记录在第一个目标文件,第二段代码引用了其它模块定义的函数foo,这一信息记录在第二个目标文件。

注意看第一段代码,这里定一个全局变量


http://www.ppmy.cn/devtools/56434.html

相关文章

WebSockets 完全指南:在 Postman 中测试实时通信

标题:WebSockets 完全指南:在 Postman 中测试实时通信 摘要 Postman 是 API 开发者广泛使用的工具,支持 RESTful API 的测试和调试。随着实时通信的兴起,WebSockets 协议变得日益重要。本文将详细介绍如何在 Postman 中测试 Web…

信号与系统、数字信号处理及通信原理课程深度解析与资源推荐

信号与系统、数字信号处理及通信原理课程深度解析与资源推荐 在电子工程、通信技术和计算机科学领域,信号与系统、数字信号处理和通信原理是三门至关重要的课程。它们不仅为学生提供了坚实的理论基础,也为后续的专业学习和工作实践奠定了坚实的基础。本…

计算文本相似度的几种方法

计算文本相似度的几种方法 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来探讨一下计算文本相似度的几种方法。文本相似度在自然语言处理&#xff08…

量子计算与AI融合:IBM引领未来计算新纪元

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

折半查找详解

一:折半查找概念 折半查找(也称为二分查找)是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是目标值,则搜索过程结束;如果目标值大于或小于中间元素&#x…

使用Python进行Web开发:从基础到实战

使用Python进行Web开发:从基础到实战 Python不仅是一门数据科学的利器,也是一门强大的Web开发语言。得益于其简洁的语法和丰富的生态系统,Python在Web开发领域同样大放异彩。本文将介绍Python在Web开发中的基础知识、常用框架以及一个完整的实战项目,帮助读者从基础入门到…

electron本地运行请求端口

本地运行: npm run electron:start 运行后项目请求地址为: http://localhost:5173/api/xxxx const {protocol } require(electron); app.commandLine.appendSwitch(--ignore-certificate-errors, true); // Scheme must be registered before the app…

Java中如何进行分布式系统设计?

Java中如何进行分布式系统设计? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,我们来讨论如何在Java中进行分布式系统设计。分布式…