首页 > 编程知识 正文

shell printf格式化输出,linux安装gcc命令

时间:2023-05-04 21:12:01 阅读:113729 作者:3189

GCC的意思也只有GNU C Compiler。 经过多年的发展,GCC不仅支持c语言,而且现在还支持Ada语言、c语言、Java语言、Objective C语言、Pascal语言、COBOL语言、支持函数式编程和逻辑编程的Mercury语言等。 此外,GCC不再只是GNU C语言编译器的意思,而是GNU Compiler Collection,也就是GNU编译器家族的意思。 另一方面,要说GCC对OS平台和硬件平台的支持,一言以蔽之,无处不在。

2 .简单编译

示例程序如下:

//test.c#includeintmain(void ) ) printf ) ' Helloworld! n '; 返回0; }

这个程序,一步一步的编译指令是:

gcc test.c -o test

基本上,上述编译过程分为四个阶段:预处理(也称为预编译、预处理)、编译(assembly )、链接(link )。

2.1预处理

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

可以将预处理了test.c的代码输出到test.i文件中。 打开test.i文件,看一下就知道了。 后面的命令将直接在命令行窗口中输出预处理后的代码。

gcc的-E选项允许编译器在预处理后停止并输出预处理结果。

2.2编译为汇编代码(Compilation )

预处理后,可以直接编译生成的test.i文件以生成程序集代码。

gcc -S test.i -o test.s

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

2.3汇编(Assembly ) )。

对于在上一节中生成的程序集代码文件test.s,gas程序集将编译为目标文件,如下所示:

gcc -c test.s -o test.o

2.4连接(链接) ) )。

gcc连接器由gas提供,用于连接程序的目标文件和所有必需的附件目标文件,并最终生成可执行文件。 附加的目标文件包括静态连接库和动态连接库。

对于上一节中生成的test.o,将其连接到c标准输入输出库,最终生成程序test

gcc test.o -o test

在命令行窗口中,运行./test,让我说HelloWorld。

3 .编译多个程序文件

整个程序通常由多个源文件组成,相应地形成多个编译单元,通过使用GCC可以正确管理这些编译单元。 假设您有一个由两个源文件: test1.c和test2.c组成的程序。 要编译它们并最终生成可执行程序test,请使用以下命令:

gcc test1.c test2.c -o test

如果有多个文件同时处理,GCC将按照预处理、编译和链接过程顺序进行。 归根到底,上面的指令大致相当于依次执行以下三个指令。

gcc-c test1.c-o test1.ogcc-c test2. c-o test2. og cctest1. o test2. o-o test

4 .检查错误

gcc -pedantic illcode.c -o illcode

-pedantic编译选项不保证编译的程序与ANSI/ISO C标准完全兼容,而只用于帮助Linux程序员接近此目标。 Pascallanguagevideo教程(即-pedantic选项)帮助程序员发现不符合ANSI/ISO C标准的代码,但不是全部。 实际上,只有在ansi/ISOC语言标准要求编译器诊断时,才会被GCC发现并警告。

本文来自电脑杂谈,转载请注明正文网站:

http://www.pc-体贴的蜜粉.com/a/jisuanji Xue/article-54347-1.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。