本文連結地址:http://blog.csdn.net/sushengmiyan/article/details/10284879
作者:蘇生米沿
Borland出品的Delphi,在TIOBE公布的2013年8月份程式設計語言熱門排行榜中已經下降到14名。雖然排名下降,但是仍可以看出,使用delphi進行編程的還是大有人在,delphi現在確實有點落伍,加上borland公司的落沒,尤其是對網路的支援不足,delphi目前的處境還是可以接受的,但同樣不可否認的是,delphi在快速介面應用程式開發中還是有著不可比擬的優勢,或許這就是為什麼其還能具有這麼強大生命力的原因吧。好了,廢話不多說。開始進入主題:DCC32編譯器。
通常情況下,我們使用delphi IDE就可以直接編譯器,不需要使用DCC32命令列方式來編譯,不過,當項目發展到一定規模的時候,或者當你厭倦了大項目中IDE蝸牛般的編譯速度的時候,你可能就會有這樣的想法:能不能寫段代碼,然後運行這段代碼或者指令碼,那項目就自己編譯好了。嗯,如果你有這樣的想法了,那這篇文章就很符合你的口味。
一、首先找到這個可執行檔,熟悉delphi的人應該很容易就找到,開啟你安裝delphi的目錄,如我的路徑C:\Program Files\Delphi_2007\bin\DCC32.EXE
二、拷貝一份出來,我將其放在了我的測試目錄下 : F:\Src\QMsg\Build
三、現在就可以測試這個命令了。使用windows的cmd命令,切換到當前DCC32所在的目錄,先輸入 f:切換到F盤,然後輸入 cd F:\Src\QMsg\Build
切換到DCC32所在目錄,然後輸入DCC32命令,如:
當你出現這個介面,說明你已經成功調用DCC32命令了。然後下面是搜集的一些編譯指令和命令。大家感興趣的話可以去手動寫代碼然後編譯試試,這裡就不詳細寫了哦。
Delphi’s命令列編譯器(dcc32.exe)允許你從DOS命令列方式(參照:IDE命令列選項)實現IDE編譯器(delphi32.exe)的所有功能。用DOS命令運行命令列編譯器文法如下:
dcc32 [選項] [檔案名稱] [選項]
零或多個參數給編譯器提供資訊,檔案名稱指定需要編譯的源檔案名稱。如果你單獨輸入dcc32,它會顯示一個關於命令列編譯的選項和文法的螢幕。
如果檔案名稱沒有副檔名,命令列編譯器會尋找副檔名為.dpr的同名檔案,如果找不到,則尋找副檔名為.pas的同名檔案。如果你的源檔案確實沒有副檔名,你需要在檔案名稱的末尾添加(.)。
如果指定的源檔案是一個工程檔案,編譯器會建立一個副檔名為.EXE的同名可執行檔。如果指定的源檔案是一個庫檔案,編譯器建立一個副檔名為.DLL的同名動態連結程式庫檔案。如果指定的源檔案是一個包檔案,編譯器會建立一個副檔名為.BPL的同名包。如果指定的源檔案是一個單元檔案,編譯器會建立一個副檔名為.dcu的目標代碼檔案。
你可以為命令列編譯器指定多個參數。一個參數包含一個破折號“-”(或“/”)和緊跟著的一個選項字元構成。通常情況下,選項字元後面會跟一些附加的資訊,如一個數字、一個符號、一個目錄等。選項可以是任意順序並且可以在源檔案名稱前面或後面。
同樣,Delphi支援用編譯器指令關鍵字描述的編譯器指令。使用“$”和“D”命令列選項可以改變所有的預設編譯器狀態。用“$”和“D”命令列選項等同於在源檔案的前面添加編譯器指令。
編譯器指令選項開關
“$”允許你改變每一種編譯器指令預設狀態。編譯器指令的文法是“$”後緊跟一個指令字元,再跟一個“-”或“+”。例如:
dcc32 MYSTUFF-$R-
不使用邊界檢查編譯MYSTUFF.pas單元:
dcc32 MYSTUFF-$R+
使用介面檢查編譯MYSTUFF.pas單元。如果將編譯器指令{$R+}或{$R-}添加到源檔案的開始,它將覆蓋從命令列傳入的參數。
你可以用多個“$”來指定多個編譯器指令,如:
dcc32 MYSTUFF-$R--$I--$V--$U+
命令列編譯器允許作用逗號分隔的編譯器指定列表,如:
dcc32 MYSTUFF-$R-,I-,V-,U+
只需要用一個“$”符號。
注意,因為$M的格式不一樣,你不能在逗號分隔的指令列表中使用$M
條件編譯選項
“-D”選項允許你定義一個編譯條件,符合你用{$DEFINEsymbol}定義的編譯器指令。“-D”選項後必須跟隨一或多個用分號分隔的編譯條件符號,如下命令:
dcc32 MYSTUFF-DIOCHECK;DEBUG;LIST
定義了三個編譯條件符號:IOCHECK,DEBUG,LIST,用於MYSTUFF.pas單元中。這等同於在源檔案中插入以下語句:
{$DEFINEIOCHECK}
{$DEFINE DEBUG}
{$DEFINE LIST}
如果你指定了多個“-D”選項,你可以聯結它們,如下:
dcc32 MYSTUFF-DIOCHECK-DDEBUG-DLIST
等同於第一個例子。