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

原文 标签 c++ c compiler-construction mingw

我刚刚安装了 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?

    最佳答案

    它们很可能都是一样的。彼此之间的精确拷贝或符号链接(symbolic link)。尝试使用 --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
    

    关于c++ - 哪个 MinGW 文件用作 C++ 编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5047798/

    相关文章:

    c - C语言中的Knuth列表插入方法

    Java到C交叉编译

    c++ - 从网格渲染 RGB-D 图像

    c - 如何在C中的Struct中使用memcpy?

    c++ - 在 C++ 中重载二元关系运算符的正确方法

    c - 如果要保护 vector 的修改,如果尝试使用const子句,为什么不起作用?

    c# - C#64位发布代码的反汇编 View 比32位调试代码长75%?

    java - 语义分析编译器阶段的子阶段是什么?

    c++ - 具有重叠子控件的Qt自定义小部件

    c++ - 如何转换重载的自由函数来解决重载冲突?