Delphi編譯/連結過程

來源:互聯網
上載者:User

下面展示了Delphi是怎樣編譯源檔案,並且把它們連結起來,最終形成可執行檔。

當Delphi編譯項目(Project)時,將編譯項目源檔案、表單單元和其他相關單元,在這個過程中將會發生好幾件事情:

首先,Object Pascal編譯器把項目單元編譯為二進位對象檔案,然後資源編輯器將把諸如程式表徵圖、表單檔案等資源編譯成二進位資源檔,接著連結開始起作用;連結器根據編譯器產生的二進位檔案,依項目需要增加一些庫檔案,並把這些檔案綜合在一起產生最終的可執行檔。

 

編譯、建立和連結

每當點擊Run按鈕時,Delphi都會編譯和連結程式,但它只編譯改動過的單元。Delphi能知道哪個個檔案已改動,哪個檔案沒有改到。

絕大部分時間中,我們都想看一看改變後的程式運行結果,在這種情況下,就需要點擊Run按鈕,程式將被編譯、連結和執行。但有時候可能不想運行程式,比如只想編譯器,看一看有沒有什麼錯誤。

當預設建立一個Application時(工程檔案名稱DRP預設為Project1),在Delphi的主菜單Project下,則有以下幾個菜單選項:

1、Syntax check Project1 選項,它能讓Delphi編譯工程,並且報出任何錯誤和警告,這時檢查代碼錯誤最快的方法,Delphi只編譯工程,而不執行連結,Syntax check選項的目的就是儘快檢查代碼的語法錯誤,因為連結階段需要佔額外的時間,Syntax check忽略了這一步。介面如下:

2、Compile Project1 選項,就像Syntax check一樣,它用來編譯從最近一次編譯後改動過的任何單元。它需要執行連結,因此比Syntax check 選項所佔的時間稍長一點,當需要只編譯和連結程式而不運行時就可以用Compile 選項。介面如下:

預設情況下,該Compile選項不會顯示編譯狀態對話方塊,通過主菜單【Tools | Environment Option】對話方塊中開啟“Preferences”選項卡,在Compiling and running組合框中勾選“Show compiler progress”選項即可開啟編譯狀態對話方塊,如下:

Delphi編譯工程的速度非常快,故一般不需要編譯狀態對話方塊,實際上,編譯狀態對話方塊增加了編譯時間,因為編譯狀態對話方塊中顯示資訊是佔用時間的。

3、Build project1 選項,占的時間最長,這個選項編譯工程中的每一個單元,不管這個單元是否有改動,當編譯完所有單元後,Delphi連結整個工程,並產生Project1.exe可執行檔。

不管選擇哪種方式編譯工程,如果發現了錯誤,Code Editor 將會出現在最上層視窗,並且Code Editor 底部的資訊視窗將會顯示錯誤和警告清單。Code Editor 會把第一處出錯的程式碼加亮,當成功進行語法檢查、編譯、連結和建立後,就可以通過選擇Run按鈕來運行程式。

編譯並建立其他Delphi程式

在Delphi中,大部分情況都是編寫基於VCL的應用程式。但有時也要編寫其他類型的應用程式。點擊主菜單【File | New | Other..】可以看到Delphi支援的其他類型應用程式,如下:

DLL Wizard,將建立動態連結程式庫(DLL)

Console Application,Win32控制台應用程式是一種32位程式,它在Windows的DOS模式下運行。任何不需要圖形介面的應用程式基底本上都適合控制台應用程式。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.