编译简介(一)

在不同上下文中,编译的意思是不一样的。我们通常所说的编译,是一种广义的说法,相当于构建,即编译项目相关的所有文件,并链接。比如编译最简单的hello world程序,生成可执行程序hello

$ gcc hello.c -o hello

而从狭义上讲,编译仅仅指编译器所完成的工作,而不包含汇编器、链接器等工具所完成的工作。通常来讲,编译器生成汇编文件(.s文件),如:

$ gcc -S hello.c

在实践中,汇编步骤不会单独执行,只有链接的过程会独立出来,直接生成目标代码(.o文件)的命令如下:

$ gcc -c hello.c

gcc本身其实是个驱动程序,它负责命令行参数转换和调用相关程序,真正的编译器是cc1或者cc1plus。使用-v参数,可以显示出gcc调用其它程序时使用的命令行参数,如:

$ gcc -v -c hello.c

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据