ホームページ > バックエンド開発 > C++ > GCC で「-stdlib=libstdc」フラグを使用する必要があるのはどのような場合ですか?

GCC で「-stdlib=libstdc」フラグを使用する必要があるのはどのような場合ですか?

Patricia Arquette
リリース: 2024-10-23 15:31:02
オリジナル
588 人が閲覧しました

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

GCC で '-stdlib=libstdc ' フラグを使用する場合

gcc でコンパイルする場合、'-stdlib=libstdc ' フラグランタイム ライブラリとして GNU 標準 C ライブラリ (libstdc) の使用を指定する必要があります。

コンパイラは自動的に libstdc を使用しますか?

いいえ。オペレーティング システムと特定の GCC バージョンに応じて、コンパイラはデフォルトで別のランタイム ライブラリを使用する場合があります。

「-stdlib=libstdc」フラグを使用する場合

「-stdlib=libstdc」フラグの使用が必要なシナリオをいくつか示します:

  • Linux の場合: ほとんどの Linux ディストリビューションはデフォルトで libstdc を使用しますが、フラグを明示的に指定することで、異なるバージョン間の互換性。
  • Mavericks より前の macOS: macOS Mavericks より前は、デフォルトのランタイム ライブラリは Apple の古いバージョンの libstdc でした。 libc (C 11 をサポート) を使用するには、「-stdlib=libc」フラグを使用する必要があります。
  • Mavericks 以降の macOS: macOS Mavericks 以降、libc がデフォルトになり、 '-stdlib=libstdc ' フラグは使用しないでください。

コンパイル コマンド

さまざまなオペレーティング システムで libstdc を使用して C 11 コードをコンパイルするには、次のコマンドを使用します。コマンド:

  • Linux: g -std=c 11 -stdlib=libstdc input.cxx -o a.out
  • Mavericks より前の macOS: g -std=c 11 -stdlib=libc input.cxx -o a.out
  • Mavericks 以降の macOS: Clang -std=c 11 input.cxx -o a。アウト

以上がGCC で「-stdlib=libstdc」フラグを使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート