Ubuntu GCC的使用

1.概述

        GCC编译器能将C/C++语言程序、汇编程序编译、链接成可执行文件。

2.GCC简介

        GCC是以GPL许可证所发行的自由软件,也是GNU计划的关键部分。GCC初衷是为
GNU操作系统专门编写一款编译器, 现已被大多数类Jnix操作系統(如Linux、 BSD、
Mac OS X等)采纳为标准的编译器,甚至在微软的Windows.上也可以使用GCC。GCC
支持多种计算机体系结构芯片,如x86、 ARM、 MIPS等, 并已被移植到其他多种硬件平
台。
        GCC原名为GNU C语言编辑器(GNUC Compiler),只能处理C语言。但其很快扩
展,变得可处理C++.后来又扩展为能够支持更多编程语言,如Fortran、 Pascal.
Objective-C、Java、 Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编
译器套件(GNU Compiler Collection)。

3.gcc遵循的约定规则

 

4.GCC的编译过程

 

 

 (3)汇编

下一步进行的是汇编。在汇编阶段,编译器把编译出来的结果汇编成具体CPU_上的目标
代码模块。输入汇编文件*.s,输出机器语言*.0。

(4)链接

最后,在链接阶段把多个目标代码模块连接生成一-个大的目标模块。输入机器代码文件
*.o (与其他的机器代码文件和库文件),汇集成一 个可执行的二进制代码文件。这一步骤
可以利用下面的示例命令完成链接到库中,变成可执行文件
链接是自动完成的,-0仅是为输出文件重命名而已

 (5)汇编生成

(6)生成可执行程序 -o

 

 (7)生成可执行程序系统默认名a.out

提示警告

GCC有很多的编译选项,警告选项;指定头文件、库路径:优化选项。详细可参考htt
p:/gccgow.org/onlinedocs/gcc/Warning: Qptions.html文档
默认级别是编译器认为的警告,满足大部分场合使用。

显示更多警告 -Wall(常用)

发生第一个错误时中止编译 Wfatal-errors

项目很大,错误很多,找不到第一个错误时, 可以使用测试一下。

关闭警告 -w(小写w)

 严禁使用

警告转换为错误Werror

可以参考使用不常用

编译时定义宏 -D

调试阶段很方便,量产时不需要再次处理源代码

检查符合ANSI/ISO标准 --pedantic

下面来看看gcc是如何帮助程序员来发现这些错误的。当gcc在编译不符合ANSIISO C语
言标准的源代码时,如果加上了pedantic选项,那么在使用了打展语法的地方将产生相
应的警告信息,如下:
# gcc -pedantic warning_ .code.c -0 warning. code

 

Ubuntu是一个流行的操作系统,而gcc是GNU Compiler Collection的缩写,它是一个用于编译和链接C、C++和其他编程语言的工具。根据引用,您提到的gcc版本是4.2.3,是在Ubuntu 4.2.3-2ubuntu7上编译的。根据引用,您还提到了一个tar压缩包,它包含了Ubuntu gcc-7.3.0的安装包。 在Ubuntu中,您可以使用gcc命令来编译C源代码。根据引用,您可以使用以下命令编译名为main.c、calcu.c和input.c的源文件,并将输出文件命名为main: gcc main.c calcu.c input.c -o main 如果您在同一个目录下有数千个源文件,并且只想编译已修改的文件,您可以使用Makefile来管理编译过程。您可以创建一个名为"Makefile"的文件,并按照以下示例内容填写: main: main.o input.o calcu.o gcc -o main main.o input.o calcu.o main.o: main.c gcc -c main.c input.o: input.c gcc -c input.c calcu.o: calcu.c gcc -c calcu.c clean: rm *.o rm main 这个Makefile中定义了一个名为main的目标,它依赖于main.o、input.o和calcu.o这三个对象文件。通过运行make命令,make会自动分析源文件之间的依赖关系,并根据需要编译和链接它们。此外,Makefile中还定义了一个clean目标,可以使用make clean命令来删除所有生成的对象文件和可执行文件。 希望这对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Ubuntugcc安装及使用](https://blog.csdn.net/qq_40423358/article/details/108586367)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Ubuntu gcc-7.3.0.安装包tar](https://download.csdn.net/download/u011344545/10850256)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [gccUbuntu上安装和使用](https://blog.csdn.net/qlexcel/article/details/120649645)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值