ホームページ  >  記事  >  バックエンド開発  >  GCC でコンパイルするときに「-stdlib=libstdc」フラグが必要になるのはどのような場合ですか?

GCC でコンパイルするときに「-stdlib=libstdc」フラグが必要になるのはどのような場合ですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-24 01:27:29149ブラウズ

When is the

GCC でコンパイルするときに「-stdlib=libstdc」フラグを使用する場合

一部のシナリオでは、「-stdlib=」を明示的に設定しますlibstdc " フラグは、GCC でコンパイルする場合に必要です。状況は次のとおりです:

Linux の場合:

デフォルトでは、Linux ディストリビューションは標準 C ライブラリとして libstdc を使用します。さらに、GCC の最新バージョンは、バンドルされている libstdc で C 11 を本質的にサポートしています。したがって、Linux で C 11 コードをコンパイルするには、g を指定して "-std=c 11" フラグを使用するだけで十分です。

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

Mavericks 以前の OS X:

歴史的に、OS X の g は、clang のエイリアスでした。この文脈では、Apple の古いバージョンの libstdc がデフォルトでした。 C 11 サポートを含む libc を利用するには、明示的に "-stdlib=libc ":

g++ -std=c++11 -stdlib=libc++ input.cxx -o a.out

Mavericks 以降の OS X:

を指定する必要がありました。 OS X Mavericks 以降、libc がデフォルトの C ライブラリになりました。したがって、「-stdlib=」フラグを使用する必要はありません:

clang++ -std=c++11 input.cxx -o a.out

OS X での libstdc に対するビルド:

Xcode 10 以降では、ビルドlibstdc に対するアプリケーションはサポートされなくなりました。 libstdc に対してコンパイルされた既存のコードは引き続き機能しますが、新しいコードのコンパイルは許可されません。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。