本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[MSC]C1001 : Internal Compiler Error について

文書番号: 403007

最終更新日: 2004/04/27


この資料は以下の製品について記述したものです。


概要

この資料は、コンパイル時に発生する以下のエラーの原因と解決方法について説明
したものです。
  コンパイラの致命的なエラー: C1001   INTERNAL COMPILER ERROR
  ヘルプやドキュメントの解説
   『コンパイラが内部の矛盾を検出しました....』

詳細

INTERNAL COMPILER ERROR は、コンパイラがなんらかの原因で、ソースコードの解析 をそれ以上続けることができない事を示すコンパイラの内部エラーです。
エラー以降コンパイラが使用できないことを示している訳ではありません。

原因

多くの場合、コンベンショナルメモリが不足した状態や ソースコード中の複雑な
条件文、複雑な判断文が原因で発生します。また、関数自体が大きい場合や最適化
を行う場合も解析のためのメモリをより多く必要とするため、エラーが発生しやす
くなります。
コンパイラのバージョンアップに伴い、複雑な処理に対するエラーチェックが強化
されているため、旧バージョンで発生しなくとも、上記のような原因があると、
新バージョンでのリコンパイル時にエラーが発生することもあります。

対処方法

コンパイラへの負荷が原因となることが多いので、これを軽減します。

1)最適化の抑制。

コンパイルオプション /Od やプラグマ optimize、を使用する。

2)複雑な代入文、判断文の簡略化。

複数行に書き換えるなどする。

3)ソースコードの単純化。

個々の関数のサイズを小さくする、またはファイルを小さく分割する。

4)コンベンショナルメモリの確保。

CONFIG.SYS ファイルで登録しているデバイスドライバのうち、必要の無いものは削
除し、拡張メモリに対応しているものは DEVICEHIGH コマンドなどにより、コン
ベンショナルメモリ外に登録する。また、日本語入力システムに代表されるキャ
ラクタ系のデバイスは MS-DOS 外部コマンドの ADDDRV、DELDRV で動的な登録削
除が可能なので CONFIG.SYS での登録を避ける。

詳細

  • Visual C++ は、米国 Microsoft Corporation の商標です。

Keywords: C6 C7 KBPRB QC20 VC10 VC15 KB403007
Technology: kbAudDeveloper kbCCompPDS600DOS kbCCompSearch kbQC200 kbvc150 kbVCsearch kbZNotKeyword3 kbZNotKeyword8

inserted by FC2 system