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 サイトの他の関連記事を参照してください。