哪个MinGW文件用作C ++编译器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪个MinGW文件用作C ++编译器相关的知识,希望对你有一定的参考价值。
我刚刚安装了MinGW,在bin文件夹中,我可以看到7个.exe文件,它们会编译我的程序:
- c ++。exe
- g ++。exe
- mingw32-c ++。exe
- mingw32-g ++。exe
- gcc.exe
- mingw32-gcc.exe
- 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 ++编译器的主要内容,如果未能解决你的问题,请参考以下文章