1.gcc的安装(以Ubuntu为例) sudo apt-get install build-essential 安装完后可以通过 gcc --version 查看版本。 让我们在通过gcc编译可执行文件的过程中掌握其基础应用。 准备: 先在当前目录下 使用vim新建一个.c文件 例如 666.c (vim的使用可在我的另一篇博客有详细的叙述,这里不多在赘述) 插入一段代码。 #include <stdio.h>main(){ int a,i; a=6; for(i=0;i<3;i++) { printf("%d",a); }} 
(每次我们用 cat 查看)
一.预处理1.预处理通过对宏定义(像#define)进行展开,对头文件(像 stdio.h)进行展开,对条件进行(像ifdef)编译,展开所有宏,删除所有注释(像"//").预处理cpp把源代码,头文件预编成一个.i文件。(注意这时并不检查语法,所以即使有语法错误也不会报错。) 2.命令: $ gcc -E (源文件名) -o (预处理文件名) 或者: 例如按666.c 来说,预处理时可以是 : gcc -E 666.c -o 666.i 也可以是 gcc 666.c > 666.i 
二. 编译 1.编译也就是检查语法是否错误,将预处理过的文件编译成汇编文件。 2.命令: 例如 gcc -S 666.i -o 666.s 
三.汇编1. 汇编也就是将汇编文件生成目标文件(二进制文件)通过汇编,文本代码变成了二进制代码。(二进制代码文件以.o为后缀名)。 2.命令: $ gcc -c (汇编文件) -o (目标文件) 例如 gcc -c 666.s -o 666.o 
(这时候因为是二进制文件了,所以会乱码)
四.链接1. 链接找到依赖的库文件(静态与动态),将目标文件链接为可执行程序。 $ gcc -c [目标文件] -o [可执行程序] -l[动态库名] 假如没有动态库的话(一般) 直接 $ gcc -c [目标文件] -o [可执行程序] 例如 gcc -c 666.o -o 666 此时会生成可执行程序 666 如果想执行使用该命令: 其中./是在当前目录下的意思。 例如 ./666 
(注意:在一般我们使用时 如果使用 gcc 可执行文件名,会默认生成a.out 可执行文件,这时我们直接执行它时用 ./a.out ) 下载地址: 一文解析Apache docker安装RabbitMQ详细步骤 |