2011-09-07 97 views
8

安裝後德爾福XE2,我試着命令行編譯dcc32.exe編譯一個簡單的程序:德爾福XE2:失敗使用dcc32.exe編寫一個簡單的程序

program test; 

uses SysUtils; 

begin 
end. 

命令行編譯器告訴我的錯誤:

c:> dcc32.exe test.dpr
Embarcadero Delphi for Win32 compiler version 23.0 Copyright (c) 1983,2011 Embarcadero Technologies, Inc.
test.dpr(3) Fatal: F1026 File not found: 'SysUtils.dcu'

這不會發生在Delphi XE上。

回答

28

如果你只是想使用命令行(沒有DCC32.CFG文件),你正在尋找的命令行參數是-NS指定的命名空間中搜索...

所以,你將有是這樣的:

dcc32.exe -NSsystem;vcl test.dpr 

這應該使編譯器尋找在SystemVCL命名空間單元(VCL加入到展示如何添加多個命名空間)。

該信息發現在Embarcadero Discussion Forums上。我還沒有XE2,所以我無法測試它。

8

我知道這不是你的直接問題的答案(Uwe和Nat有這個問題),但是用msbuild構建會更好。這樣你就可以在你的.dproj文件中找到所有的設置。

構建命令應該是這樣的:

msbuild test.dproj /t:Rebuild /p:Config=Release 

如果從一個批處理腳本建立這個,你需要確保它可以看到正確的msbuild。這樣做:

call "path\to\delphi\installation\bin\rsvars.bat" 
msbuild test.dproj /t:Rebuild /p:Config=Release 
+1

你如何創建dproj?我認爲,自從他在cmdline上編譯以後,他不想爲此啓動Delphi。 –

+1

@Marco .dproj是最近delphi版本的源代碼的一部分。它由IDE維護幷包含您的項目配置。 –

+1

我不明白你的觀點。這是針對標準(GUI)項目的,但對於普通情況,您不會回到cmdline。 –

13

由於RTL和VCL中的新命名空間,您必須爲編譯器指定一個額外的命令行參數。嘗試「-NSSystem; System.Win; WinAPI; Vcl; Vcl.Imaging; Data」並根據需要添加其他名稱空間。

-1

如果您使用的是Hewlett Packard PC或筆記本電腦,則可能需要刪除「平臺」環境設置(在Windows中)。預先配置的(工廠)HP windows7具有(出於我未知的原因)環境變量Platform = AnyCPU。這會影響Delphi XE2。我昨天晚上發現了這個討論,它幫助了我: https://forums.embarcadero.com/thread.jspa?messageID=387525&tstart=0 沒有這種修復,我無法編譯任何東西。它會在VCL和FireMonkey上窒息,如果我的目標是64位或32位無關緊要。

+0

這隻適用於編譯.dproj文件,而不是.dpr文件,它們沒有平臺規範。 –