9

安装 Delphi XE2 后,我尝试使用命令行编译器 dcc32.exe 来编译一个简单的程序:

program test;

uses SysUtils;

begin
end.

命令行编译器显示错误:

c:> dcc32.exe test.dpr
Embarcadero Delphi for Win32 编译器版本 23.0 版权所有 (c) 1983,2011 Embarcadero Technologies, Inc.
test.dpr(3) 致命:F1026 找不到文件:'SysUtils.dcu'

Delphi XE 不会发生这种情况。

4

4 回答 4

29

如果您只想使用命令行(不带 dcc32.cfg),您要查找的命令行参数是 -NS 以指定要搜索的命名空间...

所以,你会有这样的事情:

dcc32.exe -NSsystem;vcl test.dpr

这应该使编译器在SystemandVCL命名空间中查找单元(添加 VCL 以显示如何附加多个命名空间)。

此信息可在Embarcadero 论坛上找到。我还没有 XE2,所以我无法测试它。

于 2011-09-07T08:16:43.283 回答
13

由于 RTL 和 VCL 中的新命名空间,您必须为编译器指定一个额外的命令行参数。尝试“-NSSystem;System.Win;WinAPI;Vcl;Vcl.Imaging;Data”并根据需要添加其他命名空间。

于 2011-09-07T08:10:17.390 回答
9

我知道这不是您直接问题的答案(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
于 2011-09-07T08:05:19.617 回答
-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 位。

于 2011-09-07T12:20:38.563 回答