linux编译运行.h和.c文件,linux下利用gcc编译C和C++

本文详细介绍了Linux环境下利用gcc编译C和C++的完整过程,包括预处理、编译、汇编和链接四个阶段。讲解了如何通过gcc命令进行操作,并探讨了库文件的链接方法,包括动态库和静态库的区别以及如何指定库路径和链接选项。此外,还简单介绍了makefile工具及其基本规则,用于自动化编译过程。
摘要由CSDN通过智能技术生成

gcc ------->默认编译c文件(gcc  xxx  -lstdc++链接到c++库编译c++,g++默认编译c++)

一.CC编译程序过程分四个阶段

◆ 预处理(Pre-Processing)

◆ 编译(Compiling)

◆ 汇编(Assembling)

◆ 链接(Linking)

1.1 预处理(Pre-Processing)

gcc -E test.c -o test.i 或 gcc -E test.c

可以输出test.i文件中存放着test.c经预处理之后的代码。打开test.i文件,看一看,就明白了。后面那条指令,是直接在命令行窗口中输出预处理后的代码.

gcc的-E选项,可以让编译器在预处理后停止,并输出预处理结果。预处理结果就是将#include等类似的文件中的内容插入到当前文件中。

1.2 编译(Compiling)

预处理之后,可直接对生成的test.i文件编译,生成汇编代码:

gcc -S test.i -o test.s

gcc的-S选项,表示在程序编译期间,在生成汇编代码后,停止,-o输出汇编代码文件。

1.3 汇编(Assembling)

对于生成的汇编代码文件test.s,gas汇编器负责将其编译为目标文件,如下:

gcc -c test.s -o test.o

1.4 链接(Linking)

gcc连接器是gas提供的,负责将程序的目标文件与所需的所有附加的目标文件连接起来,最终生成可执行文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值