OpenCV 2.4.9のビルド時にC1076エラーが発生した
Windows + VC11ビルドでC1076, C3859エラー
OpenCV2.4.9をWindowsでVisual C++2012(VC11)を用いてビルドしたところ次のエラーがopencv_contrib, opencv_stitchingで発生しました.コレに追随して依存しているモジュールもビルドが出来ませんでした.error C1076: コンパイラの制限 : 内部ヒープの上限に達しました。上限を変更するには /Zm オプションを使用してください。
error C3859: PCH の仮想メモリの範囲が超えています。'-Zm118' 以上のコマンド ライン オプションで再コンパイルしてください。
このC1076というエラー「このエラーは、シンボルが多すぎるか、テンプレートのインスタンス生成が多すぎることが原因で発生する場合が」あるそうです.(参照)
というわけで該当したopencv_contrib, opencv_stitichingに/Zmオプションを追加してみます.
/Zmオプションの追加
opencv_contribとopencv_stitchingのプロパティそれぞれを開き「C/C++」→「コンパイラオプション」を開き/Zmオプションを追加します.
また,Debug, Releaseの共通するオプションであるため,「構成」を「すべての構成」にします.
エラーではZm118以上を指定するようにされていました.数値が多きほど割り当てられるメモリ量が大きくなるようですね.ここでは150を指定してみます./Zmと150の間に空白をいれません.
![]() |
/Zm150と追加したところ |