在linux环境实践,使用vim编写一个程序,然后使用gcc查看【预处理】、【编译】、【汇编】、【链接】各阶段文件的内容。并熟悉相关指令。

初用Linux,安装了cent os 6.5

惊奇

这世界上竟然有如此装X的系统 

把终端的背景调成黑色字体调成绿色,感觉自己就是这个世界上最牛逼的人

先来说一下终端里最最最简单的命令

ls

(英文全名list)列出当前文件夹的所有文件)

cd

(英文全名change directory )更改(切换)目录 

mkdir

(英文全名make directory )创建目录(文件夹)

rm

(英文全名remove) 删除文件(-f) 
例如 删除一个a.out文件,指令为rm -f a.out。

mv

(英文全名move) 移动文件

touch

(英文全名touch) //创建文件

pwd

(英文全名print work directory)打印当前工作目录 


下面,让我们用vim编辑器写一个简单的hello world吧

在终端中先输入 vim test.c

然后摁i进入编辑插入模式

就像在vc6.0中写c语言程序那样,直接写入我们的代码

如下图

在linux环境实践,使用vim编写一个程序,然后使用gcc查看【预处理】、【编译】、【汇编】、【链接】各阶段文件的内容。并熟悉相关指令。

此时按键盘(Esc)进入普通模式 
此时按键盘‘:’键进入命令模式,后按‘wq’保存并退出。 
输入gcc test.c编译,按下ls此时会有两个文件test.c 和 a.out都一样, 
然后接./a.out链接,就会出现“hello world !”了 

在linux环境实践,使用vim编写一个程序,然后使用gcc查看【预处理】、【编译】、【汇编】、【链接】各阶段文件的内容。并熟悉相关指令。

编译

分为三个预处理(也叫预编译),编译,汇编

预处理test.c

gcc -E test.c 
作用:1头文件包含(以#开头的为预处理指令) 
2注释删除 

3#define定义符号的替换

编译

gcc -S test.i 
作用:1把源代码编程汇编代码 

2进行语法检测(分析),词法分析,语义分析,符号汇总

汇编

gcc -o test.o 

作用:把汇编代码转换成二进制指令,形成符号表

链接

生成最终文件