Entry No.
471
|
コンパイラ - コンパイル出来ない
USEしているユニットが最新であることを確実にする為に再帰コンパイルを実行すると、コンパイラがループに陥り、最終的にスタックオーバーフローを起こすことがある
|
1.02 |
2.01 |
3.0 |
3.01 |
3.02 |
4.0 |
4.01 |
4.02 |
4.03 |
5.0 |
5.01 |
6.0 |
6.01 |
6.02 |
Kylix 1.0 |
Unknown |
Unknown |
Unknown |
Unknown |
Exists |
Unknown |
Unknown |
Unknown |
Unknown |
Unknown |
Unknown |
Unknown |
Unknown |
Unknown |
Unknown |
|
|
解説
|
|
Reported by Bevan Arps
ユニットのファイル名とその先頭の unit 宣言とが一致しない場合、通常は "モジュールヘッダが無いか、不正です" というメッセージを受け取ります。
USEしているユニットが最新であることを確実にする為に再帰コンパイルを実行すると、時々コンパイラはその状況を認識せず、代わりにループに陥り、最終的にスタックオーバーフローを発生させます。
私は500以上のファイルを含む大きなパッケージでこの状況に出くわし、単純なテストケースでは再現させられませんでした。しかし、元の状況では必要に応じて再現可能でした。
|
|
解決策 / 回避方法
|
回避方法:コンパイル中にスタックオーバーフローが発生したら、コンパイル状況のウィンドウに最後に表示された数ファイルを見て、ヘッダが一致しているかどうかを確認して下さい。
|
|
ユーザーからのコメント
|
Daren Scot Wilson
12 Jul 2001 05:27 PM GMT
|
間違いなく Delphi 5 はこの問題を含んでいます。
|
|