计算机程序设计语言通常分为机器语言、汇编语言以及高档语言三类。高档语言需要通过翻译成机器语言才能执行,而翻译的方式分为两种,一种是编译型,另外一种是解释型。
因而咱们基本上将高档语言分为两大类,一种是编译型语言,例如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
评论