Linux 程序编译进程详解

小微 科技Linux 程序编译进程详解已关闭评论138字数 752阅读模式
摘要计算机程序设计语言通常分为机器语言、汇编语言和高级语言三类。高级语言需要通过翻译成机器语言才能执行,而翻译的方式分为两种,一种是编译型,此外一种是解释型。因此我们基本上将高级语言分...

计算机程序设计语言通常分为机器语言、汇编语言以及高档语言三类。高档语言需要通过翻译成机器语言才能执行,而翻译的方式分为两种,一种是编译型,另外一种是解释型。

因而咱们基本上将高档语言分为两大类,一种是编译型语言,例如C,C++,Java,另外一种是解释型语言,例如Python、Ruby、MATLAB 、JavaScript。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2659.html

本文将介绍怎么将高层的C/C++语言编写的程序转换成为处理器能够执行的二进制代码的进程,包含四个步骤:文章源自微观生活(93wg.com)微观生活-https://93wg.com/2659.html

  • 预处理(Preprocessing)
  • 编译(Compilation)
  • 汇编(Assembly)
  • 链接(Linking)

GCC 工具链介绍文章源自微观生活(93wg.com)微观生活-https://93wg.com/2659.html

通常所说的GCC是GUN Compiler Collection的简称,是Linux系统上经常使用的编译工具。GCC工具链软件包含GCC、Binutils、C运行库等。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2659.html

GCC文章源自微观生活(93wg.com)微观生活-https://93wg.com/2659.html

GCC(GNU C Compiler)是编译工具。本文所要介绍的将C/C++语言编写的程序转换成为处理器能够执行的二进制代码的进程即由编译器完成。文章源自微观生活(93wg.com)微观生活-https://93wg.com/2659.html

Binutils文章源自微观生活(93wg.com)微观生活-https://93wg.com/2659.html

一组二进制程序处理工具,包含:addr2line、ar、objcopy、objdump、as、ld、ldd、readelf、size等。这一组工具是开发以及调试不可缺乏的工具,分别简介如下:文章源自微观生活(93wg.com)微观生活-https://93wg.com/2659.html

  • addr2line:用来将程序地址转换成其所对应的程序源文件及所对应的代码行,也能够得到所对应的函数。该工具将帮助调试器在调试的进程中定位对应的源代码位置。
  • as:主要用于汇编,有关汇编的详细介绍请参见后文。
  • ld:主要用于链接,有关链接的详细介绍请参见后文。
  • ar:主要用于创立静态库。为了便于初学者理解,在此介绍动态库与静态库的概念:

以上就是微观生活(93wg.com)关于“Linux 程序编译进程详解”的详细内容,希望对大家有所帮助!文章源自微观生活(93wg.com)微观生活-https://93wg.com/2659.html 文章源自微观生活(93wg.com)微观生活-https://93wg.com/2659.html

 
小微
  • 版权声明: 本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:81118366@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
  • 转载请务必保留本文链接:https://93wg.com/2659.html