Quelle est la différence entre g++
y gcc
?
gcc
a évolué d'un langage unique "Compilateur GNU C" à une "Collection de compilateurs GNU" multi-langues. Le terme gcc
peut encore parfois se référer au "compilateur GNU C" dans le contexte de la programmation C.
man gcc
# GCC(1) GNU
#
# NAME
# gcc - GNU project C and C++ compiler
Cependant, g++
es le compilateur C++ de la collection de compilateurs GNU. Comme gnat
est le compilateur Ada pour gcc
. Voir Utilisation de la collection de compilateurs GNU (GCC).
Par exemple, les versions 16.04 et 18.04 d'Ubuntu man g++
renvoie le GCC(1)
page du manuel.
Les versions 16.04 et 18.04 d'Ubuntu man gcc
déclare que...
g++
accepte principalement les mêmes options que gcc
et que le défaut ...
... l'utilisation de gcc
n'ajoute pas la bibliothèque C++. g++
est un programme qui appelle GCC et spécifie automatiquement la liaison avec la bibliothèque C++. bibliothèque. Il traite les fichiers .c, .h et .i comme des fichiers sources C++ au lieu de fichiers sources C, sauf si le paramètre -x est utilisé. C, sauf si -x est utilisé. Ce programme est également utile lorsque précompiler un fichier d'en-tête C avec une extension .h pour l'utiliser dans les compilations dans les compilations C++.
Recherchez le gcc
pour plus de détails sur les variations d'options entre les systèmes d'exploitation et les systèmes de gestion de l'information. gcc
y g++
.
Lequel doit être utilisé pour le développement général en C++ ?
Techniquement, soit gcc
o g++
peut être utilisé pour le développement général de C++ avec les paramètres d'option applicables. Cependant, le g++
Le comportement par défaut est naturellement aligné sur un développement C++.
El Page de manuel "gcc" d'Ubuntu 18.04 ajouté, et Ubuntu 20.04 continue à avoir, le paragraphe suivant :
La manière habituelle d'exécuter GCC est de lancer l'exécutable appelé gcc
ou machine-gcc
lors de la compilation croisée, ou machine-gcc-version
pour exécuter une version spécifique de GCC. Lorsque vous compilez des programmes C++, vous devez invoquer GCC en tant que g++
à la place.
Remarque : Dans le cas de la chaîne d'outils embarquée Xcode.app, g++
simplement des liens vers gcc
. Así, g++
peuvent varier en fonction des chaînes d'outils.
ls -l /Applications/Xcode.app/Contents/Developer/usr/bin
# …
# lrwxr-xr-x 1 root wheel 3 Apr 27 2021 g++ -> gcc
# -rwxr-xr-x 1 root wheel 167120 Nov 23 20:51 gcc
### -- versus --
which -a g++
# /usr/bin/g++
ls -l /usr/bin/g++
# -rwxr-xr-x 1 root wheel 137616 Jan 1 2020 /usr/bin/g++