web-dev-qa-db-ja.com

MSVSコンパイラフラグ/ bigobjのペナルティ

基本的なGoogle検索 bigobj issue は、多くの人が Fatal Error C1128 を経験していることを示しています: "セクションの数がオブジェクトファイル形式を超えていますlimit:/ bigobjでコンパイルします。 Boost libraries または CGAL libraries のようなC++テンプレートのライブラリを頻繁に使用すると、エラーが発生する可能性が高くなります。

そのエラーはそれ自体に解決策を与えるため、奇妙です: コンパイラフラグ/bigobj を設定してください!

だから私の質問です:なぜそのフラグはデフォルトで設定されていないのですか?そのフラグを使用するとペナルティが発生するはずです。それ以外の場合はデフォルトで設定されます。そのペナルティはMSDNに記載されていません。誰か手がかりはありますか?

[〜#〜] cgal [〜#〜] の設定システムがデフォルトで/bigobjを設定してはいけないのではないかと思います。

43
lrineau

ドキュメントは/bigobjの重要な欠点について言及しています:

Visual C++ 2005より前に出荷されたリンカーは、/bigobjで作成された.objファイルを読み取ることができません。

したがって、デフォルトでこのオプションを設定すると、結果のオブジェクトファイルを使用できるリンカーの数が制限されます。必要に応じてそれをアクティブ化する方が良い。

37