2011-09-07 98 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文件,它们没有平台规范。 –