GCC,gcc,g++关系

Posted joker D888

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GCC,gcc,g++关系相关的知识,希望对你有一定的参考价值。

GCC,gcc,g++关系

GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。GNU编译器套件包括C、C++Objective-CFortranJavaAdaGo语言前端,也包括了这些语言的库(如libstdc++,libgcj等。)

即当下的 GCC 编译器还支持编译 Go、Objective-C,Objective-C ++,Fortran, Java,Ada,D 和 BRIG(HSAIL)等程序,

gcc是GCC中的GUN C Compiler(C 编译器),g++是GCC中的GUN C++ Compiler(C++编译器)

所以GCC包含gcc,g++。

gcc和g++的主要区别:

实际上,只要是 GCC 支持编译的程序代码,都可以使用 gcc 命令完成编译。可以这样理解,gcc 是 GCC 编译器的通用编译指令,因为根据程序文件的后缀名,gcc 指令可以自行判断出当前程序所用编程语言的类别,比如:

  • xxx.c:默认以编译 C 语言程序的方式编译此文件;
  • xxx.cpp:默认以编译 C++ 程序的方式编译此文件。
  • xxx.m:默认以编译 Objective-C 程序的方式编译此文件;
  • xxx.go:默认以编译 Go 语言程序的方式编译此文件;

但如果使用 g++ 指令,则无论目标文件的后缀名是什么,该指令都一律按照编译 C++ 代码的方式编译该文件。也就是说,对于 .c 文件来说,gcc 指令以 C 语言代码对待,而 g++ 指令会以 C++ 代码对待。但对于 .cpp 文件来说,gcc 和 g++ 都会以 C++ 代码的方式编译。

有读者可能会认为,C++ 兼容 C 语言,因此对于 C 语言程序来说,使用 gcc 编译还是使用 g++ 编译,应该没有什么区别,事实并非如此,C++ 标准对代码书写规范的要求更加严格,可能某些不规范的 C 语言代码用gcc可以正常编译,而用g++就会报错。

而且要注意,使用g++编译文件时,g++会自动链接标准库STL,而gcc不会自动链接STL

以上是关于GCC,gcc,g++关系的主要内容,如果未能解决你的问题,请参考以下文章

mingw和gcc的关系?mingw具有gcc的全部核心编译功能吗

C++学习笔记C++编程环境配置

mingw和gcc的关系?mingw具有gcc的全部核心编译功能吗

C++ Cookbook by Eric

gcc make和gnu make的区别,一般是用哪个?

debian 7.6 root@debian:~# apt-get install -y build-essential gcc g++ make 安装不成功