帮你快速入门gcc

本文从helloworld程序入手,介绍了在无IDE环境下使用GCC编译C语言代码的方法。详细解析了GCC的常用选项,如-c、-S、-E、-o、-I和-g等,帮助读者理解如何进行编译、汇编、预处理及生成调试信息。

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

之前做过单片机开发,好歹也是写了好几年C语言的人了,突然间发现好像离开了IDE,就不会写代码了,那今天就来简单的入门一下gcc吧。首先让我们从hello world开始吧。以下程序在Ubuntu上编写运行。

在这里插入图片描述

上面的程序很简单,就是输出一行hello world。那让我们运行一下吧,如果在IDE上我们只要简单的点击一下运行按钮,程序就很轻松的运行起来了,但是如果没有IDE呢,我们该怎么办,接下来就是gcc表现的时候了。我们先让程序运行起来,后面再系统的介绍gcc的一些常用功能。
在命令行输入gcc helloworld.c -o helloworld
这里解释一下,helloworld.c 是文件名,helloworld是可执行文件文件名,运行结果如下图所示:
在这里插入图片描述
执行完gcc helloworld.c -o helloworld 命令以后,文件夹下面多了一个helloworld文件,直接使用命令./helloworld运行文件,可以看到输出了hello world,就这样我们就在没有IDE的条件下完成了一次程序的编译和执行,是不是很简单。

gcc常用选项汇总

gcc功能十分强大,这里我们介绍一些常用的命令,能够满足日常开发需要,后面如果有复杂的需求,再学习也很快。

gcc编译选项意义
-c编译,汇编制定的源文件,但是不进行链接
-S编译指定的源文件,但是不进行汇编
-E预处理指定的源文件,不进行编译
-o[file1] [file2]将文件file2编译成可执行文件file1
-I directory指定include包含文件的搜索目录
-g生成调试信息,该程序可以被调试器调试

gcc编译选项会区分大小写,-o和-O效果是不一样的,这个在后面做介绍

-c选项

下面我们来介绍一下-c选项的用法,首先我门先准备3个程序,分别写在不同文件中,方便看现象。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在终端输入:gcc -c main.c test1.c test2.c test3.c
在这里插入图片描述
如上图所示,文件夹下面多了几个.o文件,使用-c选项,表示只编译源文件,而不进行链接。将这些.o文件链接起来,就可以生成可执行文件。细心的小朋友可能会发现,上面我门使用-c选项编译的时候,爆出来warning,这是因为我们没有在main函数前面申明我们调用的函数,这里我们给他补上,再用-c选项试一试。
在这里插入图片描述
在这里插入图片描述

如上图所示,警告没有啦,那么这里提出一个问题,如果我们再申明一个int test4();函数会不会报错呢,让我们来测试一下。修改添加 int test4()之后,重新输入命令:gcc -c main.c test1.c test2.c test3.c 编译通过,没有任何错误和警告运行效果如下图所示:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
那么,我们生成可执行文件试试,看看是不是一样能够通过,
输入命令: gcc main.c test1.c test2.c test3.c -o test
直接上图,看看运行结果。
在这里插入图片描述
报错了,这是为什么呢,刚刚单独编译不是已经通过了吗,为什么生成可执行文件的时候确报错了,其实上面图片已经提示的很明显了,我们申明和使用了test4()函数,但是没有定义这个函数,使用-c选项表示只编译源文件,但是不进行链接。所以对于链接中的错误是无法发现的。这也就解释了为什么刚刚我们上面使用-c选项 0 error 0 warning,但是用-o选项生成可执行文件时候报错了。 未完待续。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值