gcc学习心得和使用demo

本文介绍了GCC(GNU C Compiler)的基本概念和使用,包括其作为多平台、多语言编译器的角色,详细解释了gcc编译的四个阶段:预处理、编译、汇编和链接。通过实例展示了如何通过gcc直接生成可执行文件,以及如何在Linux环境下使用gcc搭建webServer和创建web网页。GCC在Linux系统中的重要性以及在软件安装和开发中的应用也得到了强调。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gcc

1. 简介

gcc(GNU C Compiler)是一款性能强大、性能优越的多平台编译器。
它支持可以编译的语言:C、C++、Java等等。而且gcc已经从当初只支持c语言编译的工具,逐渐成为支持市面上绝大多数语言编译的编译器。
可以说,如今的gcc已经是多平台、多语言的编译器,总的来说使用gcc编译无处不在,尤其在学习Linux中,安装其他软件也是需要gcc的编译支持,例如:VMWare tools。

简单来说,gcc就是将我们提前写好的代码(C、C++、Java等)文件,编译成为可执行的文件,已被我们方便使用。


2. gcc编译详解

案例源文件a.c代码如下:

#include <stdio.h>
int main(void){
	printf("Hello Word!!!\n");
	return 0;
}

gcc的编译过程分为四个阶段:预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编 (Assembly)和连接(Linking)。

  • 预编译

调用源代码文件(.c、.cpp)进行预处理,生成以.i为后缀的预处理文件,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。

gcc -E a.c -o a.i

gcc的-E选项,可以让编译器在预处理后停止,并输出预处理结果。
以上命令的作用就是,对a.c源文件进行预处理编译,并将预处理结果保存到文件a.i文件中。

  • 编译

将预编译处理后生成的文件进行编译,生成以.s为后缀的汇编源文件。

gcc -S a.i -o a.s

gcc的-S选项,表示在程序编译期间,在生成汇编代码后,停止,-o输出汇编代码文件。
这样我们可以推断出,将预编译文件(a.i)进行编译处理,然后将生成结果保存在编译文件(a.s)中。

  • 汇编

简单来说,就是调用编译文件a.s进行汇编,生成以.o为后缀的目标文件。

gcc -c a.s -o a.o

通过为 gcc 指令的 -c 选项(注意是小写字母 c),即可让 gcc编译器将指定文件加工至汇编阶段,并生成相应的目标文件。
以上代码以及参数的作用,就是将编译文件a.s进行汇编操作,并将处理结果保存在目标文件(a.o)中。

  • 链接

连接是负责将程序的目标文件与所需的所有附加的目标文件连接起来,最终生成可执行文件。附加的目标文件包括静态连接库和动态连接库。

gcc a.o -o a

通过以上指令内容,我们可以推断出以上指令的作用就是,将目标文件(a.o)链接生成可执行文件a。

  • gcc执行操作流程流程:
    在这里插入图片描述

3. gcc直接生成可执行文件

在这里插入图片描述


4. 搭建webServer并用C搭建web网页

1)把http.tar.gz拷贝到Linux环境中:
在这里插入图片描述

2)解压压缩包:
在这里插入图片描述

3)进入解压后的目录,终端敲make编译代码:

在这里插入图片描述


6)环境测试

a)必须root用户先启动web服务:

在这里插入图片描述

b)查看web服务器所在机器的ip:
在这里插入图片描述

c)打开能平同web服务器(192.168.31.143)机器的浏览器,网址输入192.168.31.143:

在这里插入图片描述


5. gcc操作案例演示

gcc使用和使用C语言搭建webServer


视频链接:https://www.bilibili.com/video/BV1Hy4y1m7MU

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值