这个
GNU Compiler Collection
或
GCC
是一种编译器及相关辅助工具,用于将不同的编程语言编译成二进制及相关格式。GCC是由GNU项目创建和开发的。另外,GCC名称来自GNU,正如您所注意到的。GCC在开源社区非常流行,并被不同的项目(如Linux内核)使用。GCC通过提供免费的、开源的、动态的编译器集合,在开源运动的头二十年中扮演了非常重要的角色。GCC提供
GPL
或
General Public License
它允许GCC以自由和开源的方式发布。
GCC历史
GCC是由GNU项目启动的,richardstallman是它的先驱。GCC于1987年3月在mitftp服务器上首次发布。它被称为第一个被广泛使用的开源自由软件。第一个C语言编程支持了一年中C++编程语言的支持。此外,后来的Objto-C,Objul-C++,FORTRAN,java,艾达和GO支持已经被添加。在写这篇文章时,最新的GCC版本是10.2,已经在2020年7月发布。
GCC支持的编程语言
GCC是一个开源的、灵活的编译器集合,它支持多种编程语言,如下所示。
- C程序设计语言
- C++程序设计语言
- Objective-C程序设计语言
- ObjaveC++程序设计语言
- Fortran程序设计语言
- Ada程序设计语言
- Go程序设计语言
- Java程序设计语言
GCC支持的硬件平台和体系结构
与编程语言一样,GCC支持以下不同的硬件平台和体系结构。
- 阿尔法
- 手臂
- IA-32型
- IA-64型
- 米普斯
- PowerPC公司
- 斯巴克
- x86-64位
- …
GCC用法
GCC可以安装在不同的操作系统中,如Linux、Ubuntu、Fedora、CentOS、Debian、Mint、Kali、Windows、MacOS等,但是Linux平台是GCC主要在Linux上开发的最舒适的平台。GCC可以通过使用支持的操作系统的安装程序或包管理器来安装。GCC提供了命令行用法,其中提供了不同的选项来指定编译过程的细节。下面您可以找到一些关于GCC的基本用法示例。
# Simply compile with GCC
$ gcc helloworld.c
# Compile into an executable file named hw
$ gcc helloworld.c -o hw
# Compile multiple files
$ gcc helloworld1.c myfile.c
# Show warning messages
$ gcc -Wall helloworld.c -o hw
流行的GCC编译器选项
GCC是一个功能丰富的编译器工具集,其中为不同的情况提供了不同的选项。GCC选项用于更改默认编译属性。例如,在编译前对源代码的额外输入可以通过宏等提供。下面我们将列出一些流行的GCC编译器选项。
-c
选项将源文件编译为对象文件而不进行链接。
-Dname=value
定义并向编译过程提供预处理器宏。
-fPIC
为其他二进制文件使用的共享库生成位置无关的代码。
-glevel
将调试信息生成二进制文件,可以使用gdb工具对其进行错误调试。
-llib
将给定的库或库链接到创建的二进制文件中。
Ldir
在给定的目录中查找要在编译过程中使用的库文件。
-o myexe
将创建的可执行文件设置为myexe。
-Olevel
优化代码并创建优化的可执行文件和二进制文件。
-shared
为共享库生成共享对象文件。
-w
禁用所有警告消息。
-Wall
启用所有警告消息。
-Wextra
以更详细的方式启用额外的警告消息。