Quel fichier MinGW utiliser comme compilateur C++

je viens d'installer MinGW et dans le dossier bin je vois 7 .fichiers exe qui compilent mon programme:

  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

Mon petit programme (testprog.rpc) compile correctement avec chacun d'eux; le a.exe le fichier est généré dans le dossier bin et il fonctionne correctement.

Quelle est la différence entre eux et qui dois-je utiliser? En outre, que puis-je faire pour changer le nom du fichier de sortie de a.exe to testprog.exe automatiquement à chaque compilation réussie?

18
demandé sur Abbas 2011-02-19 02:54:03

4 réponses

il est tout à fait possible qu'ils soient tous les mêmes; soit des copies exactes, soit des liens symboliques entre eux. Essayez d'utiliser le --version pavillon sur chacun pour voir ce que vous avez. Sur mon installation MinGW ici, chacun de ces binaires diffère (coché avec diff), mais ils produisent tous les mêmes informations de version (à l'exception du premier bit, qui est le nom du fichier):

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 drapeau pour changer le nom du fichier de sortie:

gcc -o testprog.exe testprog.cpp
8
répondu Carl Norum 2011-02-18 23:56:54

ceux-ci suivent les conventions de nommage gcc.

  • c++.exe est un nom traditionnel pour le système compilateur c++
  • g++.exe et de la gcc.exe sont les noms des compilateurs gcc qui compilent pour le "système courant"
  • mingw32 - * versions sont les noms pour les compilateurs qui croisent-compiler à la cible "mingw". Dans ce cas, c'est le même que le système cible.
  • puis mingw32-gcc-4.1.exe est " gcc pour la version cible de mingw 4.1"

vous devez généralement compiler du code C avec une variante "gcc", et du code c++ avec une variante" g++".

Utiliser -o filename pour spécifier le nom du fichier de sortie, la valeur par défaut est a.exe

14
répondu Erik 2011-02-19 00:08:03

dans unix, ils sont principalement créés par des liens symboliques. La seule différence majeure est entre les versions 'cc' et'++'. Vous devriez remarquer une différence entre les deux si vous utilisez une partie de la bibliothèque C++ standard. Les versions ' ++ ' se lient automatiquement à ce lib. Les "cc" sont des compilateurs C et ne le sont pas...bien que vous puissiez les utiliser comme compilateurs C++ en ajoutant simplement-lstdc++ ou n'importe quoi d'autre.

3
répondu Crazy Eddie 2011-02-18 23:58:42

pendant que je cherchais sur le web des instructions pour faire quelques DLLs, j'ai lancé un processus de compilation C++ et à partir de ce que j'ai vu, ils ont utilisé g++ pour compiler c++ de la même manière qu'avec gcc.

0
répondu Maurice Rodriguez 2013-04-08 05:30:40