• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

Linux下gcc和ld命令在编译连接阶段本质都做了啥?

游~游~游 2018-09-11 浏览量:1111

编译过程gcc怎么把源文件弄成目标文件

链接有可以把目标文件弄成可执行文件?本质都做了啥工作?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 源码里面有很多预处理指令,大概分3步,预处理,编译,链接。

    预处理,把替换,查找头文件,预定义等,编译完其实就可以运行了,然后把外部的库,链接起来,静态链接,动态链接。

    没事看看编译愿理吧,研究研究编译器

    • 发布于 2018-09-11
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:10
  • 编译的结果是你自己开发的模块二进制代码,有时还需要其他库支持,比如调用一些库函数,这时就需要链接处理。
    • 发布于2018-09-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 主要是预处理,编译,代码支持,库函数,预定义等等
    • 发布于2018-09-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 要弄懂这个,还是去看编译原理吧
    • 发布于2018-09-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 具体细节,看看编译原理,这样比较最靠谱,三言两语应该都是说不清楚的
    • 发布于2018-09-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 主要是看编译器原理,基本上都是提取信息连接代码,翻译成机器码这几个步骤,具体的还是看看编译原理!
    • 发布于2018-09-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 编译器主要完成的就是将你的高级代码转换为机器能够读懂的机器码,其中包括预处理,编译,链接等过程,你看一下MDK在进行build时候的几个动作就明白了
    • 发布于2018-09-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 编译器就是将你写的代码转换成机器码的动作,转换也就是编译过程了。
    • 发布于2018-09-20
    • 举报
    • 评论 0
    • 0
    • 0

  • gcc将c语言代码翻译成了中间文件obj,ld是将依赖的库链接起来合成新的obj
    • 发布于2018-09-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般都是预处理,编译,链接的过程,把你的c语言代码转化成机器码
    • 发布于2018-09-27
    • 举报
    • 评论 0
    • 0
    • 0

  • gcc主要是把源文件翻译成能够在特定架构的处理器上执行的二进制代码,ld连接则是吧多个二进制代码连接起来,生成完整的程序。
    • 发布于2018-10-18
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

Linux下gcc和ld命令在编译连接阶段本质都做了啥?