あなたが言及したエラーはどちらもコンパイラエラーではありません。コンパイラ自体が原因である可能性は低いです。それらはおそらく、コンパイルに至るまでの呼び出しチェーンのどこかから来ています。
短期的な解決策は、コマンド ラインからコンパイルすることです。MSBuild は、Delphi が内部で使用するビルド エンジンです。
- IDE で通常どおり Indy ファイルを編集し、変更を保存してから IDE を閉じます。
- スタート メニューからRad Studio コマンド プロンプトを開きます。これにより、コマンド ライン ビルドを実行するための適切な環境変数が設定されます。標準のコマンド プロンプトを使用して rsvars.bat を実行することもできます。
cd
ディレクトリを IndyProtocols.dpk の場所に変更するために使用します
- タイプ
msbuild IndyProtocols.dpk /target:Build /p:config=Release
デバッグ バージョンを実行する場合は、に変更/p:config=Release
するだけ/p:config=Debug
です。プロジェクト ファイルは xml であり、大文字と小文字が区別されるため、msbuild を使用する場合は大文字と小文字が区別されることに注意してください。
また、IDE に同梱されているライブラリを直接変更しないようにしてください。提供されたライブラリに特定のプロジェクトで修正が必要なバグが見つかった場合は、通常、問題のあるファイルをプロジェクトのフォルダーにコピーし、そこで変更を加えることで解決できます。また、他の依存ファイルもいくつかコピーする必要があります。このアプローチを採用すると、コンパイラは次のようなエラーでコピーする必要がある従属を通知します。Unit * was compiled with a different version of *.*
IDE を本当にデバッグしたい場合は、試すことができますが、IDE 全体で使用されるrtl
とcoreide
パッケージは両方ともリリース バージョン (デバッグ情報なし) としてコンパイルされているため、表示されているエラーの原因を特定するのは難しい場合があります。
いずれにしても、プロジェクト マネージャーに読み込まれた IndyProtocols.dpk を使用して、IDE の 2 番目のインスタンスを実行できます。次にRun > Attach to Process
、最初の IDE インスタンスから使用して、デバッガーを 2 番目の IDE インスタンスにアタッチします。その後、2 番目の IDE インスタンスから IndyProtocols.dpk をビルドしてみてください。すべてが期待どおりに進むと、デバッガーはエラーをキャッチし、エラーが発生した場所でブレークできるようにするので、掘り下げることができます。