Maison > développement back-end > C++ > Quand spécifier \'-stdlib=libstdc \' lors de la compilation avec GCC ?

Quand spécifier \'-stdlib=libstdc \' lors de la compilation avec GCC ?

Mary-Kate Olsen
Libérer: 2024-10-24 02:20:02
original
584 Les gens l'ont consulté

When to Specify

Quand utiliser -stdlib=libstdc

Lors de la compilation avec gcc, l'indicateur -stdlib=libstdc spécifie la bibliothèque standard C à utiliser. Dans la plupart des cas, le compilateur utilisera automatiquement libstdc , la bibliothèque GNU C, par défaut. Cependant, il existe des cas où il peut être nécessaire de spécifier explicitement -stdlib=libstdc .

Comportement spécifique au compilateur

Sous Linux, toutes les principales distributions utilisent libstdc comme La bibliothèque C par défaut et les versions récentes de GCC prennent en charge C 11 par défaut. Pour compiler du code C 11, vous pouvez utiliser soit :

  • g -std=c 11 input.cxx -o a.out
  • g -std=gnu 11 input.cxx - o a.out

Sur OS X avant Mavericks, g était un alias pour clang , et l'ancienne libstdc d'Apple était la valeur par défaut. Pour utiliser libc , qui inclut la prise en charge de la bibliothèque C 11, transmettez -stdlib=libc . Les options de compilation incluent :

  • g -std=c 11 -stdlib=libc input.cxx -o a.out
  • g -std=gnu 11 -stdlib=libc input.cxx -o a.out
  • clang -std=c 11 -stdlib=libc input.cxx -o a.out
  • clang -std=gnu 11 -stdlib=libc input.cxx -o a.out

OS X Mavericks et versions ultérieures

Depuis OS X Mavericks, la libc est devenue la bibliothèque C par défaut. Vous devez vous abstenir d'utiliser l'indicateur -stdlib= dans ce cas. Notamment, Xcode 10 et versions ultérieures ne prennent plus en charge la compilation avec libstdc .

Options de compilation recommandées

  • Linux : utilisez g -std=c 11 input.cxx - o a.out ou g -std=gnu 11 input.cxx -o a.out
  • OS X (avant Mavericks) : utilisez g -std=c 11 -stdlib=libc input.cxx -o a. out ou clang -std=c 11 -stdlib=libc input.cxx -o a.out
  • OS X (Mavericks et versions ultérieures) : utilisez clang -std=c 11 input.cxx -o a.out ou clang -std=gnu 11 input.cxx -o a.out

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal