关于GCC和MinGW编译器的那些事

本文主要根据文章Windows中使用GCC介绍整理而成,仅供学习,转载请附上原文链接:

https://blog.csdn.net/cnds123/article/details/126072293


  1. 前言

相信学习过C/C++编程的,估计没有人不知道GCC或MinGW编译器。本文作一些简单的介绍。

  1. GCC/MinGW

GCC是由许多组件组成的。GCC原名为GNU C语言编译器(GNU C Compiler),只能处理C语言。但其很快扩展,变得可处理C++,后来又扩展为能够支持更多编程语言,如Fortran、Pascal、Objective -C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器集合(GNU Compiler Collection)。

GCC一般运行环境为linux。MinGW是GCC的Windows移植版本。MinGW是指只用自由软件来生成纯粹的 Win32 可执行文件的编译环境,它是 Minimalist GNU on Windows (Windows上的极简GNU)的略称。开发 MinGW 是为了那些不喜欢工作在 Linux操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU 工作环境。

谈到 GCC,就不得不提 GNU,“GNU”是“GNU's Not Unix!”(GNU并非Unix!)的首字母递归缩写,中文名“革奴计划”。GNU 计划的最终目标是打造出一套完全自由(即自由使用、自由更改、自由发布)、开源的操作系统,并初步将其命名为 GNU 操作系统。

  1. gcc与g++的区别

注意:GCC与gcc,g++是不同的东西(区分大小写!)

  • GCC: GNU Compiler Collection(GUN 编译器集合),它可以编译C、C++、JAV、Fortran、Pascal、Object-C、Ada等语言。

  • gcc是GCC中的GUN C Compiler(C 编译器)

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


我们一般编译编译c++文件会使用g++命令,编译c文件时,使用gcc命令。实际上gcc也是可以编译c++文件的。那么这两个命令到底有哪些却别呢?

  • 对于 .c和.cpp文件,gcc分别当做c和cpp文件编译。

gcc 指令为用户提供了“手动指定代表编译方式”的接口,即使用 -x 选项。例如,gcc -xc xxx 表示以编译 C 语言代码的方式编译 xxx 文件;而 gcc -xc++ xxx 则表示以编译 C++ 代码的方式编译 xxx 文件。

  • 对于 .c和.cpp文件,g++则统一当做cpp文件编译。

  • 使用g++编译文件时,g++会自动链接标准库STL,而gcc不会自动链接STL;在用gcc编译c++文件时,为了能够使用STL,需要加参数 –lstdc++ 。

编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。因为gcc命令不能自动和C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用gcc,二者等价。因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了。】

对于 gcc 和 g++,初学者只要知道,对于 C 语言程序的编译,我们应该使用 gcc 指令,而编译 C++ 程序则推荐使用 g++ 指令,这就足够了。

猜你喜欢

转载自blog.csdn.net/weixin_43354152/article/details/129284266