`
omygege
  • 浏览: 1386683 次
文章分类
社区版块
存档分类
最新评论

gcc命令详解

 
阅读更多

GCC最初是一个C/C++语言的编译器,是GNU project C and C++ Compiler的缩写。现在已经可以支持包括Object-C, Fortran, Ada, Java等多种开发语言的开发, GCC的名称也改为GNU Compiler Collection。但是GCC最主要的用途还是用来编译C/C++程序。

首先需要了解一个C/C++程序从开始编码到生成可执行的二进制文件至少需要经过四个步骤:

  • 预处理
  • 编译
  • 汇编
  • 链接

大多数人之所以没有看到过这些是因为GCC已经帮我在后台隐式做了这些工作,我们一般都是直接使用GCC不加任何参数直接编译的。其实,只通过GCC你就可以控制上面的每一个细节。你可以简单的编写一个HelloWorld.c的文件来完成下面的工作。

1.预处理, 预处理主要对程序的预处理指令进行处理,预处理指令是指那些在源程序中由#开头的指令。GCC可以通过-E选项使GCC在生 成预处理文件后停止:

$gcc -E hello.c -o hello.i

2.编译。-S选项制定GCC在生成汇编文件后停止:

$gcc -S hello.c -o hello.s

3.汇编。-c选项指定GCC在生成目标文件后停止:

$gcc -c hello.s -o hello.o

4.链接。生成可执行文件

$gcc hello.o -o hello

以下是GCC的常用选项

-g 生成调试信息,便于gdb对生成的程序进行调试

-O[0,1,2,3] 对生成的代码进行优化,中括号中是优化级别,默认为2级优化

-Idir 在编译程序时增加一个搜索有文件的额外目录dir

-Ldir 在编译源文件时增加一个搜索库文件的额外目录dir

-llibrary 在编译源文件时增加一个额外的库文件,库文件名称为library.a

-w 禁止所有的警告

分享到:
评论

相关推荐

    GCC命令详解

    ### GCC命令详解 #### 1. GCC 包含的 C/C++ 编译器 GCC (GNU Compiler Collection) 是一个广泛使用的开源编译器套件,它可以编译多种编程语言,包括 C 和 C++。在 GCC 命令中,`gcc`、`cc`、`c++` 和 `g++` 都是...

    gcc命令详解 gdb

    #### 一、gcc命令解析及应用 **gcc**,全称为GNU Compiler Collection,是一个广泛使用的开源编译器套件,它不仅支持C和C++语言,还包括Objective-C、Fortran、Ada、Go以及D等语言。在IT行业中,gcc被视为编译标准...

    GCC常用命令大全详解

    GCC(GNU Compiler Collection)是GNU项目的一部分,是一个开源的、跨平台的编译器套件,主要用于C、C++、Objective-C、...同时,结合文档(如提供的“Gcc命令行详解.doc”),可以进一步深入学习和掌握更多高级特性。

    linux gcc使用详解

    linux gcc使用详解,解释的很详细,带示例.

    GCC编译命令 Gcc命令行详解

    GCC 编译命令 Gcc 命令行详解 GCC 编译命令是 GCC 编译器的命令行接口,它提供了一系列选项和参数来控制编译过程。GCC 编译命令的基本格式为: gcc [options] [source_files] -o [output_file] 其中,options 是...

    GCC使用详解

    #### 三、GCC命令详解 ##### 3.1 编译单个源文件 对于简单的程序,只需要一条GCC命令就可以完成编译和链接过程。例如: ```bash gcc hello.c -o hello ``` 这里`hello.c`是源文件,`-o hello`指定了输出的可执行...

    gcc常用命令

    #### 二、gcc命令详解 在深入探讨gcc命令之前,我们先来看一个简单的示例代码: ```c #include int main(void) { printf("Hello World!\n"); return 0; } ``` 接下来,我们将详细介绍gcc编译过程中的各个阶段...

    gcc命令行详解[参考].pdf

    GCC 命令行详解 GCC 命令行是 GNU 编译器集合(GNU Compiler Collection)的命令行接口,用于编译 C、C++ 和其他语言的源代码。以下是 GCC 命令行的详细解释: 1. GCC 包含的编译器:GCC 包含多个编译器,包括 GCC...

    GCC编译器part1

    #### GCC命令详解 以一个简单的“Hello World”程序为例,GCC的编译过程可以通过以下命令实现: - `gcc hello.c -o hello`:编译hello.c为可执行程序hello。 - `gcc -E hello.c -o hello.i`:仅进行预处理,输出...

    gcc makefile的应用

    #### 四、GCC命令详解 GCC提供了丰富的选项来控制编译过程。以下是一些常用的GCC命令选项及其含义: - `-o`: 指定输出文件的名称。 - `-c`: 仅进行编译而不链接,生成目标文件。 - `-g`: 添加调试信息到输出文件中...

    gcc命令大全

    ### gcc命令大全:深入解析与应用 #### 一、引言 GCC(GNU Compiler Collection)是一套由GNU项目开发的编程语言编译器集合,它支持多种编程语言,如C、C++、Objective-C等,并且是Linux系统中最常用的编译工具之一...

    Linux GCC常用命令.docx

    ### Linux GCC常用命令知识点详解 #### 一、GCC概述 GCC (GNU Compiler Collection) 是一套由 GNU 开发的编译工具集,最初是为了支持 C 语言的编译工作而设计的。随着时间的发展,GCC 已经扩展支持了多种编程语言,...

    gcc链接脚本详解.pdf

    `objdump -h`命令可以用来查看目标文件的section信息。 对于loadable或allocatable的输出section,有两个关键的地址:VMA(Virtual Memory Address,虚拟内存地址或程序地址空间地址)和LMA(Load Memory Address,...

    gcc参数详解

    此命令告诉GCC将`hello.pig`视为C语言文件进行编译。 #### 3. 控制编译阶段 GCC允许用户控制编译的各个阶段: - `-c`:仅编译并输出目标文件,不进行链接。 - `-S`:仅进行预处理和编译,输出汇编代码。 - `-E`:...

    GCC工具链(交叉)编译过程和相关命令详解

    GCC,全称GNU Compiler Collection,是由GNU项目开发的一套开源编译器集合,它支持多种编程语言,如C、C++、Fortran、Java等,同时也适用于多种CPU平台,包括但不限于Alpha、ARM、X86、PowerPC等。GCC最早由Richard ...

    GCC命令行详解.pdf

    编译一个简单的C程序,如`test.c`,基本的GCC命令如下: ```bash gcc test.c ``` 这将默认生成一个名为`a.out`的可执行文件。如果想要自定义输出文件名,可以使用`-o`选项: ```bash gcc test.c -o test ``` 这会...

    GCC常用命令

    ### GCC常用命令详解 #### 一、GCC简介与支持的语言 GCC(GNU Compiler Collection)最初是作为GNU C Compiler出现的,随着时间的推移,其功能不断扩展,支持的语言种类也越来越多。目前,GCC不仅支持C语言,还...

Global site tag (gtag.js) - Google Analytics