GCC peut déterminer la langue d'un fichier en fonction de l'extension du fichier. Cependant, GCC ne lie pas automatiquement à l'appui de temps d'exécution pour une langue autre que C. En pratique, cela signifie que vous pouvez compiler les programmes C++ en utilisant gcc
au lieu de g++
mais vous aurez besoin d'ajouter la directive -lstdc++
:
#include <iostream>
int main()
{
std::cout << "Hello world\n";
}
g++ hello.cc
gcc hello.cc -lstdc++
Plus précisément, vous devrez spécifier -lstdc++
si vous vous utilisez la bibliothèque standard, exceptions, opérateur new
ou RTTI. Par exemple, essayez de compiler les éléments suivants sans -lstdc++
:
int main()
{
try {
throw 1;
}
catch (int i)
{
return i;
}
}
S'il vous plaît noter que les conteneurs STL (y compris std::string
s) utiliser l'opérateur new
par défaut. Strictement parlant, vous devriez être capable d'utiliser les classeurs (std::min
, std::find_first_of
, etc.) et quelques autres choses dans la bibliothèque standard sans -lstdc++
mais pour la plupart, vous pouvez aussi bien l'inclure (l'éditeur de liens ignorera les bibliothèques que vous ne lie pas réellement à).
Nécessaire d'inclure -lstdC++ pour la commande de l'éditeur de liens. – simon