linux基础:编译

程序编译

在linux中,gnu项目提供了gcc编译器、g++编译器和gdb调试器。

C和C++语言正在不断发展,为了保持兼容程序语言的最新特性,开发者通常选择GCC来编译C语言编写的源代码,选择G++来编译C++语言编写的源代码。

编译过程预处理、编译、汇编、链接

预处理:将所有的#include头文件、#define标识符替换成文本的真正内容,生成.i预处理文件(预处理之后得到的仍然是文本文件,但文件体积会大很多)。

编译:(预处理过的)程序->汇编代码,生成.s汇编文件。(符号检查)

汇编:汇编代码->机器码,生成.o目标文件。

链接过程:所需的目标文件以及所需的库文件链接在一起,生成最终的可执行文件。(符号引用检查)

GCC编译命令

逐一编译

gcc -E hello.c  -o hello.i(预处理)

gcc -S hello.i -o hello.s(编译)

gcc -c hello.s -o hello.o(汇编)

gcc hello.o -o hello(链接)

一步编译

gcc hello.c -o hello(不会产生中间文件)

-o指定输出文件的名称。

 

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYRBZR6W' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片