Maison  >  Article  >  développement back-end  >  Quand l'indicateur \'-stdlib=libstdc \' doit-il être utilisé avec GCC ?

Quand l'indicateur \'-stdlib=libstdc \' doit-il être utilisé avec GCC ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-23 15:31:02527parcourir

When Should the '-stdlib=libstdc  ' Flag Be Used with GCC?

Quand utiliser le drapeau '-stdlib=libstdc' avec GCC

Lors de la compilation avec gcc, le drapeau '-stdlib=libstdc' est nécessaire de spécifier l'utilisation de la bibliothèque GNU Standard C (libstdc ) comme bibliothèque d'exécution.

Le compilateur utilise-t-il automatiquement libstdc ?

Non. En fonction du système d'exploitation et de la version spécifique de GCC, le compilateur peut utiliser par défaut une bibliothèque d'exécution différente.

Quand utiliser l'indicateur '-stdlib=libstdc '

Voici quelques scénarios dans lesquels l'utilisation de l'indicateur '-stdlib=libstdc ' est nécessaire :

  • Sous Linux : Bien que la plupart des distributions Linux utilisent libstdc par défaut, la spécification explicite de l'indicateur peut garantir compatibilité entre différentes versions.
  • Sur macOS avant Mavericks : Avant macOS Mavericks, la bibliothèque d'exécution par défaut était l'ancienne version d'Apple de libstdc . Pour utiliser la libc (qui supporte C 11), il faut utiliser le flag '-stdlib=libc'.
  • Sur macOS depuis Mavericks : Depuis macOS Mavericks, la libc est devenue la valeur par défaut et la L'indicateur '-stdlib=libstdc' ne doit pas être utilisé.

Commandes de compilation

Pour compiler du code C 11 avec libstdc sur différents systèmes d'exploitation, utilisez ce qui suit commandes :

  • Linux :g -std=c 11 -stdlib=libstdc input.cxx -o a.out
  • macOS avant Mavericks : g -std=c 11 -stdlib=libc input.cxx -o a.out
  • macOS depuis Mavericks : clang -std=c 11 input.cxx -o a. dehors

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:
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