您提到的錯誤都不是編譯器錯誤。它不太可能是由編譯器本身引起的。他們可能來自導致編譯的調用鏈中的其他地方。
短期解決方案是從命令行編譯。 MSBuild是Delphi在引擎下使用的構建引擎。
- 像往常一樣編輯IDE中的任何Indy文件,保存更改並關閉IDE。
- 從開始菜單打開Rad Studio命令提示符。這將確保將適當的環境變量設置爲運行命令行構建。您也可以使用標準命令提示符並運行rsvars.bat來完成相同的操作。
- 使用
cd
,如果你想做一個調試版本只是改變/p:config=Release
到/p:config=Debug
目錄切換到IndyProtocols.dpk
- 類型
msbuild IndyProtocols.dpk /target:Build /p:config=Release
的位置。請注意,使用msbuild時,情況很重要,因爲項目文件是xml,區分大小寫。
另外,爲了避免直接對IDE附帶的庫進行更改,您應該儘量避免進行更改。如果您在提供的庫中發現了某個特定項目需要修復的錯誤,那麼通常可以通過將違規文件複製到項目文件夾並在其中進行更改來獲得該錯誤。您還可能需要複製其他幾個相關文件。如果採取這種方法,編譯器會告訴你哪些家屬需要與錯誤,如Unit * was compiled with a different version of *.*
現在被複制,如果你真的想調試你可以試試IDE,但整個IDE使用的rtl
和coreide
包並且都被編譯爲發佈版本(不包含調試信息),因此可能很難確定導致您看到的錯誤的原因。
無論如何,您可以使用項目管理器中加載的IndyProtocols.dpk運行IDE的第二個實例。然後使用第一個IDE實例的Run > Attach to Process
將調試器附加到第二個IDE實例。之後,嘗試從第二個IDE實例創建IndyProtocols.dpk。如果一切按預期進行,調試器將捕獲錯誤並讓您在發生的位置中斷,以便您可以四處挖掘。
您是否嘗試重新啓動delphi或計算機?有時德爾福可能會感到困惑,並給你奇怪的錯誤。儘管XE @比2006年更穩定。 – 2012-07-23 13:04:50
是的,我之前嘗試過。但它沒有奏效。 – Willy 2012-07-23 13:10:22