首页 > 其他分享 >《深入理解计算机系统》第七章学习笔记 链接

《深入理解计算机系统》第七章学习笔记 链接

时间:2023-05-02 20:58:13浏览次数:34  
标签:计算机系统 模块 程序 编译 第七章 执行 链接 加载

链接是将各种代码和数据片段收集并组合成为一个单一文件的过程,这个文件可被加载到内存并执行。链接可以执行于编译时,也就是在源代码被翻译成机器代码时;也可以执行于加载时,也就是在程序被加载器加载到内存并执行时;甚至执行于运行时,也就是由应用程序来执行。在早期计算机系统中,链接是手动执行的。在现代系统中,链接是由叫做链接器的程序自动执行的。

链接器在软件开发中扮演着一个关键的角色,因为它们使得分离编译成为可能。我们不用将一个大型的应用程序组织为一个巨大的源文件,而是可以把它分解为更小、更好管理的模块,可以独立地修改和编译这些模块。当我们改变这些模块中的一个时,只需要简单地重新编译它,并重新链接应用,而不必重新编译其他文件。

链接通常是由链接器来默默地处理的,对于那些在编程入门课堂上构造小程序的学生而言,链接不是一个重要的议题。那为什么还要这么麻烦地学习关于链接的知识呢?

  • 理解链接器将帮助你构造大型程序。构造大型程序的程序员经常会遇到由于缺少模块、缺少库或者不兼容的版本引起的链接器错误。除非你理解链接器是如何解析引用、什么是库以及链接器是如何使用库来解析引用的,否则这类错误将令你感到迷惑和挫败。
  • 理解链接器将帮助你避免一些危险的变成错误。Linux链接器解析符号引用时所做的决定可以不动声色地影响你程序的正确性。在默认情况下,错误地定义多个全局变量的程序将通过链接器,而不产生任何警告信息。由此得到的程序会产生令人迷惑的运行时行为,而且非常难以调试。我们将向你展示这是如何发生的,以及该如何避免它。

标签:计算机系统,模块,程序,编译,第七章,执行,链接,加载
From: https://www.cnblogs.com/jixuxiangqian/p/17368246.html

相关文章

  • 设置wordpress:关闭底部默认的facebook等链接(wordpress 6.2)
    一,默认显示:如图:说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest     对应的源码可以访问这里获取: https://github.com/liuhongdi/     或: https://gitee.com/liuhongdi说明:作者:刘宏缔邮箱:[email protected]......
  • 设置wordpress:隐藏 自豪地采用WordPress 链接(wordpress 6.2)
    一,未隐藏前的效果说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest     对应的源码可以访问这里获取: https://github.com/liuhongdi/     或: https://gitee.com/liuhongdi说明:作者:刘宏缔邮箱:[email protected]......
  • c# winform 打开网站,状态栏上打开网站,超链接,isLink
    设置状态栏为isLink 然后给这个状态个onClick事件在事件里写上System.Diagnostics.Process.Start("http://www.heisetoufa.iteye.com");privatevoidtoolStripStatusLabel1_Click(objectsender,EventArgse){System.Diagnostics.Process.Start......
  • go语言实现登录注册收藏相关工具和教程链接
    文章目录1、Go语言教程2、Go语言项目3、Gin+gorm学习1、Go语言教程菜鸟教程:https://www.runoob.com/go/go-tutorial.htmlgo-by-example练习:https://github.com/wangkechun/go-by-example2、Go语言项目GoFoundAPI:https://github.com/newpanjing/gofound/blob/main/docs/api.mdGole......
  • 链接
    首先会用: 《为何需要链接?》在汇编中我们总是需要通过跳转指令,到我们想要执行的地方去执行指令那么我们如何指定跳转的位置呢?汇编中通过符号表示但是符号终究是符号,机器看不懂在整个代码都定型后,无序改动后我们就可以通过链接,将符号替换成如:......
  • javascript通过按钮实现超链接
    <html:buttonproperty="PassWordReturnButton"onclick="PassWordReturnJavaScript();">返回</html:button><scriptlanguage="javascript"type="text/javascript">functionPassWordReturnJavaScript(){win......
  • html超链接
    html超链接​外部链接腾讯 target打开窗口的方式默认的值_self当前窗口打开页面_blank新窗口打开页面 百度​<h4>内部链接</h4><ahref="第一次使用工具.html">工具介绍</a><h4>空链接</h4><ahref="#">公司地址</a><h4>下载链接地......
  • 超链接函数Hyperlink(Excel函数集团)
    基本用法是=HYPERLINK("链接地址","显示文字")以下各种变种:打开网上链接=HYPERLINK("http://www.excelpx.com/")LAN内操作=HYPERLINK("\\FINANCE\Statements\1stqtr.xls",C38)跨文件夹操作=HYPERLINK("D:\FINANCE\1stqtr.xls",C42)工作簿内操作=H......
  • 【经验分享】Windows快捷键Win+G无法使用,提示需要新应用打开链接
    环境:系统版本:Windows10家庭中文版问题描述:描述:按下Win+G后弹出提示框,需要使用新应用以打开此ms-gamingoverlay链接问题解释:误将Xboxgamebar应用程序删除了,无法找到启动的程序。这个程序我当时以为就是个打游戏的,我就删除了,没想到录屏会需要到。解决方法:1.查......
  • 原生JS模拟超链接在新窗口打开链接
    可用于点击<li>、<span>等元素动作1functionopenNewWindow(url){2vara=$("<ahref='"+url+"'target='_blank'>"+url+"</a>").get(0),3e=document.createEvent('MouseEvents&......