Maison >développement back-end >C++ >Quand l'indicateur \'-stdlib=libstdc \' est-il requis lors de la compilation avec GCC ?
Quand utiliser l'indicateur "-stdlib=libstdc" lors de la compilation avec GCC
Dans certains scénarios, définir explicitement le "-stdlib= L'indicateur libstdc " est nécessaire lors de la compilation avec GCC. Voici les circonstances :
Sous Linux :
Par défaut, les distributions Linux utilisent libstdc comme bibliothèque C standard. De plus, les versions modernes de GCC prennent intrinsèquement en charge C 11 dans leur libstdc fourni. Par conséquent, pour compiler du code C 11 sous Linux, il suffit d'utiliser l'indicateur "-std=c 11" avec g :
g++ -std=c++11 input.cxx -o a.out
Sur OS X pré-Mavericks :
Historiquement, g sur OS X était un alias pour clang . Dans ce contexte, l'ancienne version de libstdc d'Apple était la version par défaut. Pour exploiter libc , qui incluait le support C 11, vous deviez spécifier explicitement "-stdlib=libc " :
g++ -std=c++11 -stdlib=libc++ input.cxx -o a.out
Sur Mavericks et OS X ultérieur :
À partir d'OS X Mavericks, la libc est devenue la bibliothèque C par défaut. Par conséquent, il n'est pas nécessaire d'utiliser l'indicateur "-stdlib=" :
clang++ -std=c++11 input.cxx -o a.out
Construire contre libstdc sur OS X :
À partir de Xcode 10, construire les applications contre libstdc ne sont plus prises en charge. Le code existant compilé avec libstdc continuera à fonctionner, mais la compilation de nouveau code n'est pas autorisée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!