美文网首页
什么都不知道,什么都想看

什么都不知道,什么都想看

作者: __0x160 | 来源:发表于2018-05-12 09:33 被阅读0次

第二个例子:如果模块中有x未被初始化,链接器会选择定义在另外一个模块中的强符号(这会导致许多不易察觉的错误)

会输出x=15212,规则2,函数f将很低调的将x改成15212,对main带来不易察觉的意外!特别是当重复定义的符号有不同的类型时,需要特别的谨慎。编译系统不会发出任何警告,而且会在程序执行很久以后才表现出来。使用GCC-fno-common可以告诉链接器,遇到这类情况,输入一条警告。

作者:进击吧巨人《深入理解计算机系统 》 | 链接


编译器编译后产生的目标文件是可重定位的程序模块,并不能直接运行,链接就是把目标文件和其他分别进行编译生成的程序模块(如果有的话)及系统提供的标准库函数连接在一起,生成可运行的可执行文件的过程。

重定位是链接器在完成符号解析后(知道了各个输入模块的代码段和数据段的大小)的一个步骤,其作用顾名思义就是重新定位,确定比如指令,全局变量等在运行时的存储器地址。   编译链接中的-可重定位目标文件


一篇2012年转的04年的文章,写得真好所以看得特别流畅

跟我一起写 Makefile

会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。 make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。

在Windows下这种包叫“库文件”(Library File),也就是 .lib 文件,在UNIX下,是Archive File,也就是 .a 文件。

相关文章

  • 什么都不知道,什么都想看

    第二个例子:如果模块中有x未被初始化,链接器会选择定义在另外一个模块中的强符号(这会导致许多不易察觉的错误) 会输...

  • 什么都知道,什么都不知道。。

    我很怕自己现在有无数的朋友圈,没朋友,天天在聊天,没人谈心,知识获取无限,离智慧很远, 什么都知道,什么都不知道,...

  • 什么都知道=什么都不知道

    飞飞说要搞科幻,我顿时凌乱了。 他曾经是喜欢国学的,什么山海经、四书五经,头头是道;而我恰恰那时喜欢奇幻、科幻,整...

  • 2018-06-26

    好累好累的感觉,整个人都懒懒的,做什么都提不起劲来。 什么都不想看,什么都不想做,什么都不想说,什么都不想吃。没有...

  • 绝望

    对一件事情绝望了是什么样子? 对一个人绝望了是什么感觉? 什么都不想说 什么都不想看 什么都不想知道 什么都不想再...

  • 你知道了 你什么都知道 你知道什么 你又懂得什么 你什么都不懂

  • 每天都在问自己的问题

    1.天啊,今天写什么?(抓耳挠腮状) 每天都写, 每天都不知道写什么。 每天都不知道写什么。 每天都写。 我不知道...

  • 无标题文章

    我什么都知道。。。。但我装作什么都不知道。。。。。你永远都不知道我是如何的卑微。。。。。。。。

  • 无数无聊中的无聊

    我无聊了。 想说点什么,也不知道说什么。 最近的大学生活不知道干嘛了。不想看太多电视,但有在看“都挺好”,想看精致...

  • 任它东风还西风

    马上要进行岗位资格面试,可我什么都不想看,什么都不想做。 整个一个死猪不怕开水烫,任它东风还西风。 干什么都提不起...

网友评论

      本文标题:什么都不知道,什么都想看

      本文链接:https://www.haomeiwen.com/subject/gcjcdftx.html