C 语言编译流程
【摘要】 C语言编译四个阶段: 预处理、编译、汇编、链接。预处理阶段:预处理器cpp根据字符#开头的命令,修改C程序。通常以i作为文件扩展名编译阶段:编译器cc1将文件文件hello.i翻译成文本文件hello.s,它包含一个汇编语言程序。汇编阶段:接下来,汇编器as将hello.s翻译成机器语言指令,把这些指令打包成一种叫做可重定位目标程序的格式,并将结果保存在目标文件hello.o中。链接阶段:链...
C语言编译四个阶段: 预处理、编译、汇编、链接。
- 预处理阶段:预处理器cpp根据字符#开头的命令,修改C程序。通常以i作为文件扩展名
- 编译阶段:编译器cc1将文件文件
hello.i
翻译成文本文件hello.s
,它包含一个汇编语言程序。 - 汇编阶段:接下来,汇编器
as
将hello.s
翻译成机器语言指令,把这些指令打包成一种叫做可重定位目标程序的格式,并将结果保存在目标文件hello.o
中。 - 链接阶段:链接器ld负责处理这种合并,可以被加载到内存中,由系统执行
仅预处理
gcc -E hello_world.c > hello_world.i
仅编译
gcc -S hello_world.c
编译并汇编,但是不链接
gcc -c hello_world.c
一步到位
gcc hello_world.c
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)