關於delphi編譯路徑設定問題

來源:互聯網
上載者:User

公司有一個控制項是用delphi編的,有bug需要修改,我接手之後就開始修改。因為工程使用了大量的外部控制項,而且有些原始碼需要用最新版替換掉,所以我決定把這些外部控制項的原始碼整合到一個project group中去。原來以為簡單的一個dpk工程的compile和install,誰知道這個工作耗費了將近2天時間。問題很簡單,不是不能通過編譯,而是明明編譯成功的bpl檔案,卻報告路徑找不到。

經過時斷時續的多種方法嘗試,終於找到了一個比較滿意的工程路徑設定規範,記錄如下。

在delphi中有兩處涉及到路徑的配置,一個是菜單tools\options中的environment options/delpihi options/library位置,使用者可以設定庫檔案尋找路徑(library path),包輸出路徑,dcp檔案的輸出目錄,原始碼瀏覽路徑等,我這裡用到兩個,一個是package output directory,另外一個是dcp output directory。前者是bpl包的輸出目錄,後者是dcu檔案的輸出目錄。這個是系統預設的輸出設定,我們這裡也不要去修改。

另外一處是project本身的options設定,這裡和預設輸出有些不一樣,設定的是輸出目錄(output directory),單元檔案輸出目錄,尋找路徑,dcp輸出目錄等。我們這裡要做如下的設定:

output directory:留空,使用全域設定

dcp output directory:留空,使用全域設定

unit output directory:所有工程設定成同一個輸出,比如..\output。記住要設定路徑,否則別人拿到你的工程一樣會麻煩。

search path:該位置用於告訴編譯器如何尋找pas、dcu檔案。一定要包含unit output directory的內容,比如..\output。看情況加入其他的尋找位置。

這樣設定之後,整體編譯就不會出問題了。原理很簡單:以上兩個留空的設定會自動使用相應的全域設定,而這兩個全域設定已經被包含在預設的全域尋找路徑中了。

我決定把這個設定作為公司的標準設定。

-------------------------------------------------------------------

以下附錄是delphi相關檔案尾碼的含義,摘自這裡:

.dcu: (delphi compiled unit)原始碼編譯之後的輸出檔案,一個原始碼檔案對應一個dcu檔案,只有原始碼檔案被修改之後才會重新編譯,用於加速編譯過程。

.dfm: (delphi form)和pas檔案配合,定義介面。

.dcp: 二進位映像檔案,包含符號資訊和ide需要的其他附加資訊,ide構建工程的時候需要這個檔案。

.bpl或者.dpl:設計時包或者運行時包。其實是一個加入了delphi特性的dll檔案。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.