哪个MinGW文件用作C ++编译器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪个MinGW文件用作C ++编译器相关的知识,希望对你有一定的参考价值。

我刚刚安装了MinGW,在bin文件夹中,我可以看到7个.exe文件,它们会编译我的程序:

  1. c ++。exe
  2. g ++。exe
  3. mingw32-c ++。exe
  4. mingw32-g ++。exe
  5. gcc.exe
  6. mingw32-gcc.exe
  7. mingw32-gcc-4.4.1.exe

我的小程序(testprog.cpp)分别正确地编译了它们; a.exe文件在bin文件夹中生成,并且可以正常运行。

它们之间有什么区别,我应该使用哪一个?另外,每次成功编译后,如何将输出文件的名称从a.exe自动更改为testprog.exe?

答案

它们很可能都是一样的;彼此的精确副本或符号链接。尝试在每一个上使用--version标志以查看所获得的内容。在我的MingGW安装中,每个二进制文件都不同(用diff选中),但是它们都输出相同的版本信息(除了第一位,即文件名):

gcc.exe (GCC) 3.4.5 (mingw-vista special r3)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

使用-o标志来更改输出文件名:

gcc -o testprog.exe testprog.cpp
另一答案

这些遵循gcc命名约定。

  • c ++。exe是系统c ++编译器的传统名称
  • g ++。exe和gcc.exe是为“当前系统”编译的gcc编译器的名称。
  • mingw32- *版本是交叉编译到“ mingw”目标的编译器的名称。在这种情况下,这与系统目标相同。
  • 然后mingw32-gcc-4.1.exe是“用于mingw目标版本4.1的gcc”
  • 您通常应使用“ gcc”变体编译C代码,并使用“ g ++”变体编译c ++代码。

使用-o filename以指定输出文件名,默认为a.exe

另一答案

在Unix中,它们主要是通过符号链接。唯一的主要区别是在“ cc”和“ ++”之间。如果使用标准C ++库的任何部分,则应注意这两者之间的区别。 “ ++”版本会自动链接到该库。 “ cc”是C编译器,因此不要...尽管您可以通过添加-lstdc ++或其他方式将它们用作C ++编译器。

另一答案

[当我在网上搜索有关制作一些DLL的说明时,我遇到了一个C ++编译过程,据我所见,它使用g ++编译g ++的方式与使用gcc的方式相同。

以上是关于哪个MinGW文件用作C ++编译器的主要内容,如果未能解决你的问题,请参考以下文章

使用GCC编译C代码

JAVA语言中,CLASS文件存放的是啥

C 编译器无法创建可执行文件 - Cygwin/MinGW

C 代码在 Linux 编译器中不起作用

vs2019与MySQL编程小白提问。我这里有个文件夹,应该打开哪个文件才能回到之前敲代码的地方呀?

windows怎么用qt MinGW gcc编译c代码