Heim >Backend-Entwicklung >C++ >Wann muss beim Kompilieren mit GCC „-stdlib=libstdc' angegeben werden?

Wann muss beim Kompilieren mit GCC „-stdlib=libstdc' angegeben werden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-24 02:20:02537Durchsuche

When to Specify

Wann sollte -stdlib=libstdc verwendet werden

Beim Kompilieren mit gcc gibt das Flag -stdlib=libstdc die zu verwendende C-Standardbibliothek an. In den meisten Fällen verwendet der Compiler automatisch libstdc, die GNU-C-Bibliothek, als Standard. Es gibt jedoch Fälle, in denen es notwendig sein kann, explizit -stdlib=libstdc anzugeben.

Compilerspezifisches Verhalten

Unter Linux verwenden alle größeren Distributionen libstdc als Standard-C-Bibliothek und neuere GCC-Versionen unterstützen standardmäßig C 11. Um C 11-Code zu kompilieren, können Sie Folgendes verwenden:

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

Unter OS X vor Mavericks war g ein Alias ​​für clang und Apples älteres libstdc war die Standardeinstellung. Um libc zu verwenden, das C 11-Bibliotheksunterstützung umfasst, übergeben Sie -stdlib=libc . Zu den Kompilierungsoptionen gehören:

  • 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 und höher

Seit OS Von der Verwendung des Flags -stdlib= sollten Sie in diesem Fall absehen. Insbesondere unterstützen Xcode 10 und höher das Kompilieren mit libstdc nicht mehr.

Empfohlene Kompilierungsoptionen

  • Linux: Verwenden Sie g -std=c 11 input.cxx - o a.out oder g -std=gnu 11 input.cxx -o a.out
  • OS X (vor Mavericks): Verwenden Sie g -std=c 11 -stdlib=libc input.cxx -o a. out oder clang -std=c 11 -stdlib=libc input.cxx -o a.out
  • OS X (Mavericks und höher): Verwenden Sie clang -std=c 11 input.cxx -o a.out oder clang -std=gnu 11 input.cxx -o a.out

Das obige ist der detaillierte Inhalt vonWann muss beim Kompilieren mit GCC „-stdlib=libstdc' angegeben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn