背景
- https://www.runoob.com/cplusplus/cpp-environment-setup.html
- https://blog.csdn.net/hblhly/article/details/80740493
GCC
GNU Compiler Collection(GNU 编译器集合),在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器。
目前 Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。
GCC不仅功能非常强大,结构也异常灵活。
最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、 Fortran、Pascal、Modula-3和Ada等
gcc与g++区别
- gcc是GCC中的 GUN C Compiler(C 编译器)
- g++是GCC中的 GUN C++ Compiler(C++编译器)
- 更准确的说法是:gcc 调用了C compiler,而 g++ 调用了C++ compiler
gcc和g++的主要区别
- 对于 *.c和*.cpp文件,gcc 分别当做 c 和cpp 文件编译(c和cpp的语法强度是不一样的); g++则统一当做cpp文件编译
- 使用g++编译文件时,g++会自动链接标准库STL,而gcc不会自动链接STL,在用gcc编译c++文件时,为了能够使用STL,需要加参数 –lstdc++ ,但这并不代表 gcc –lstdc++ 和 g++等价
- gcc在编译C文件时,可使用的预定义宏是比较少的
- gcc在编译cpp文件时/g++在编译c文件和cpp文件时(这时候gcc和g++调用的都是cpp文件的编译器),会加入一些额外的宏