GCC之g++

GCC,全称为GNU Compiler Collection,最初为C语言编译器,现支持多种编程语言。GCC是GNU工具链的核心组成部分,包含编译器、Make工具、Binutils等。文章详细介绍了GCC的版本历史、C++标准的支持情况,以及如何指定C++标准。此外,还讨论了GCC编译器选项、编译过程,并深入讲解了静态库与动态库的概念、创建与使用,以及头文件和库的搜索方法。

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

1.1 GCC简史和简介

1.1.1 GCC简述

最初的GNU C编译器(GCC)是由GNU项目的创始人Richard Stallman开发的。Richard Stallman于1984年创建了GNU项目,以创建一个完整的类Unix操作系统作为自由软件,以促进计算机用户和程序员之间的自由和合作。

GCC,以前用于“ GNU C编译器 ”,已经不断发展,支持多种语言,如C(gcc),C ++(g++),Objective-C,Objective-C ++,Java(gcj),Fortran(gfortran),Ada(gnat),Go(gccgo),OpenMP,Cilk Plus和OpenAcc。它现在被称为“ GNU编译器集合 ”。海湾合作委员会的母址是http://gcc.gnu.org/。目前的版本是GCC 7.3,发布于2018-01-25。

GCC是所谓的“ GNU工具链 ” 的关键组件,用于开发应用程序和编写操作系统。

1.1.2 GNU工具链包括

GNU编译器集合(GCC):支持多种语言的编译器套件,例如C / C ++和Objective-C / C ++。
GNU Make:用于编译和构建应用程序的自动化工具。
GNU Binutils:一套二进制实用工具,包括链接器和汇编器。
GNU调试器(GDB)。
GNU Autotools:一个构建系统,包括Autoconf,Autoheader,Automake和Libtool。
GNU Bison:一个解析器生成器(类似于lex和yacc)。
GCC是可移植的,可在许多操作平台上运行。GCC(和GNU工具链)目前在所有Unix上都可用。它们也被移植到Windows(由Cygwin,MinGW和MinGW-W64)。GCC也是一个交叉编译器,用于在不同平台上生成可执行文件。

1.1.3 GCC版本

各种GCC版本是:

GCC版本1(1987):支持C的初始版本
GCC第2版(1992):支持C ++。
GCC版本3(2001):结合ECGS(实验GNU编译器系统),改进优化。
GCC第4版(2005年):
海湾合作委员会第5版(2015年):
GCC第6版(2016年):
GCC第7版(2017年):

1.1.3 C ++标准支持

有各种C ++标准:

C ++ 98
C ++ 11(又名C ++ 0x)
C ++ 14(又名C ++ 1y)
C ++ 17(又名C ++ 1z)
C ++ 2a(2020年下一个计划标准)
默认模式是C ++ 98(适用于6.1之前的GCC版本)和C ++ 14(适用于GCC 6.1及更高版本)。

1.1.3 指定C++标准

您可以使用命令行标志-std显式指定C ++标准。例如,

-std=c++98,或-std=gnu++98(带有GNU扩展的C ++ 98)
-std=c++11,或-std=gnu++11(带有GNU扩展的C ++ 11)
-std=c++14,或-std=gnu++14(带有GNU扩展的C ++ 14),GCC 6.1及更高版本的默认模式。
-std=c++17或者-std=gnu++17(带有GNU扩展的C ++ 17),实验性的。
-std=c++2a,或-std=gnu++2a(带有GNU扩展的C ++ 2a),实验性的。

1.2 GCC 编译器选项

  • -o:指定输出可执行文件名。
  • -Wall:输出所有的debug信息。
  • -g:生成debug信息(generates additional symbolic debuggging infor
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值