1. 程式人生 > >Delphi編譯、除錯的路徑搜尋方案

Delphi編譯、除錯的路徑搜尋方案

Delphi編譯、除錯的路徑搜尋方案

  現在還經常有同事和朋友問我怎麼編譯不了程式,或斷點不起作用等等問題,今天索性就把我知道的東西整理出來供需要的朋友參考參考。由於這部分東西沒發現有正式文件說明,只是本人靠經驗摸索出來的,所以不能保證肯定正確無誤,講的不對的地方就請指出來。

     1. Delphi編譯的時候,對於需要用到的單元檔案是按著先搜尋.pas檔案後搜尋.dcu檔案的順序進行。就是說先搜尋.pas檔案,如果.pas檔案沒有搜尋到,然後再搜尋相應的.dcu檔案。如果都沒有找到,編譯器就會報找不到***.dcu檔案的錯誤。      2. 對應編譯、除錯的搜尋路徑是按著"專案檔案--》專案搜尋路徑--》IDE環境Library路徑--》系統環境變數裡的路徑"的順序進行搜尋。所以提示找不到.dcu的時候,只要看看.pas檔案或.dcu檔案是否在上面的這些路徑裡,如果不在,在合適的地方把檔案路徑新增進去即可。注意:搜尋路徑的順序很重要,不是危言聳聽。      3. 至於不能斷點的問題,基本可以確定是沒有找到.pas檔案或沒有找到"含有Debug資訊"的.dcu檔案。這裡著重強調含有Debug資訊的.dcu檔案是因為Delphi預設搜尋路徑"$(delphi)\lib"下的VCL原始碼的.dcu檔案是不含Debug資訊的,這也就是為什麼預設情況下VCL原始碼斷不下來的原因。細心的人會發現"$(delphi)\lib"下有個"Debug"的資料夾,而且裡面也都是VCL原始碼對應的.dcu檔案,這些就是含有Debug資訊的.dcu檔案。所以只要能找到這些.dcu檔案就可以除錯VCL原始碼了。   有些人會說只要"User Debug Dcus"就可以除錯VCL原始碼了,說的不錯,確實如此,但選擇這個選項歸根結底還是把"$(delphi)\lib\Debug"新增到了搜尋路徑裡,並且優先於其他路徑進行搜尋,所以就能除錯VCL原始碼了。開啟"Debugger Options"就可以看到"Debug Dcu Path:"下面寫的就是"$(delphi)\lib\Debug",看到這估計能明白怎麼回事了吧。   當然你也可以直接把"$(delphi)\lib\Debug"新增到搜尋路徑,或者直接把VCL原始碼.pas檔案的路徑新增到搜尋路徑,記住一定要位於"$(delphi)\lib\"的前面,這樣就可以對VCL原始碼進行除錯了。除錯其他控制元件的原始碼跟這類似。      方法各種各樣,只要明白了怎麼回事,什麼問題都可以解決。