Maison > Article > développement back-end > Quand l'indicateur -stdlib=libstdc est-il requis lors de la compilation ?
L'indicateur -stdlib=libstdc ordonne au compilateur et à l'éditeur de liens d'utiliser l'implémentation de la bibliothèque standard libstdc pendant la compilation. Cependant, il n'est pas toujours nécessaire de spécifier explicitement cet indicateur.
Lors de l'utilisation de Linux ou de Modern GCC sur d'autres plates-formes
Pour la plupart des distributions Linux et des versions actuelles de GCC, libstdc est l'implémentation de la bibliothèque standard par défaut. Par conséquent, l'utilisation de l'indicateur -stdlib=libstdc n'est pas requise lors de la compilation du code C 11 sur ces plates-formes. Utilisez simplement les commandes suivantes :
g++ -std=c++11 input.cxx -o a.out (GNU compiler) g++ -std=gnu++11 input.cxx -o a.out
Sur macOS avant Mavericks
Sur les versions macOS avant Mavericks, g était un lien symbolique vers clang . L'ancienne implémentation de libstdc d'Apple était la valeur par défaut. Pour utiliser libc , qui fournit le support de la bibliothèque C 11, l'indicateur -stdlib=libc était nécessaire :
g++ -std=c++11 -stdlib=libc++ input.cxx -o a.out (clang, not GNU compiler!) g++ -std=gnu++11 -stdlib=libc++ input.cxx -o a.out (clang, not GNU compiler!) clang++ -std=c++11 -stdlib=libc++ input.cxx -o a.out clang++ -std=gnu++11 -stdlib=libc++ input.cxx -o a.out
Sur macOS depuis Mavericks
Sur macOS Mavericks et versions ultérieures , la libc est la valeur par défaut. Passer explicitement l'indicateur -stdlib=libstdc n'est pas nécessaire :
clang++ -std=c++11 input.cxx -o a.out clang++ -std=gnu++11 input.cxx -o a.out
Exceptions
Il peut y avoir des cas spécifiques où l'utilisation explicite de l'indicateur -stdlib=libstdc est bénéfique :
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!