您的位置:首页 > 其它

学习 1.预编译 (gcc -E), 编译 (gcc), 汇编 (as),和 连接 (ld)

2016-04-23 18:39 330 查看
接触gcc,预编译 (gcc -E), 编译 (gcc), 汇编 (as),和 连接 (ld)。

假如有一个源程序xxx.c

1.在命令行下使用 通过 gcc xxx.c

2.编译器会生成一个可执行文件a.out , 可以命令行 中输入 a.out

3.每次进行编译时,都会出现一个新的a.out 将之前的覆盖

4.可以用- o 来完成对该文件起名字。 命令行输入 gcc -o xxx xxx.c

5.编写一个程序,通过编辑软件例如notepad++,程序保存为yyy.h

6.而编译器是用来编译,c程序的,所以要把yyy.h 加入到xxx.c中进行编译

7.就有了编程时候出现的头文件 #include “yyy.h”

8.加进去以后,再编译一次看一下有没有错误,命令行输入 gcc xxx.c

9.这样编译的时候其实是将两个部分合起来的,而预编译也可以通过命令去看 , 输入 -E (预编译)

10.预编译的作用有三,一、把include了的文件复制到到.c下 二、实际的内容,代替了代码预编译中的那条语句 三、调用宏的地方使用宏替换

11.编译只是其中的一个过程,将自己写的代码转换为汇编,同时查看有无错误语法存在。

12.as是将汇编语言转换为机器可以识别的机器语言的,汇编还是不能够在CPU上直接使用的,命令行中用-c 将.c 的文件转换为.o 的文件(目标文件)

13.连接的过程是将这些不同的目标文件,即.o 的文件组合成可执行文件

14. 通过连接将两个目标文件进行连接 ,命令行输入 gcc -o xxx xxx.c yyy.o (将两者连接起来,创建一个可执行文件xxx)

以上就完成了编译的过程,程序可以正常运行还需要保证其他非语法错误的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: