最新のオープンソース C++ 標準ライブラリ (libstdc++-v3
) を含む GCC ツールでは、同等の C プログラムに比べて生成されるコードおよびデータ片が大きくなる場合があります。このオーバーヘッドの大部分は、例外処理およびランタイム型情報のコードおよびデータによるものです。C++ アプリケーションによっては、これらの機能は必要ありません。
このオーバーヘッドをなくし、コード サイズを最適化するには、-fno-exceptions
および -fno-rtti
オプションのいずれかまたは両方を使用します。これらのオプションは、アプリケーション要件やこれらの言語の機能に精通している場合のみに使用することをお勧めします。使用可能なコンパイラ オプションおよびそれらのオプションによる影響については、GCC の資料を参照してください。
C++ プログラムには、より複雑な言語機能およびライブラリ ルーチンのため、ダイナミック メモリの要件 (スタックおよびヒープ サイズ) が厳しくなっている場合があります。多くの C++ ライブラリ ルーチンは、ヒープからのメモリの割り当てを要求します。C++ プログラムに必要なヒープ サイズおよびスタック サイズが満たされていることを確認してください。