安装Delphi XE2之后,我尝试命令行编译dcc32.exe来编译一个简单的程序:
program test;
uses SysUtils;
begin
end.
命令行编译器显示错误:
C:GT; dcc32.exe test.dpr
Embarcadero Delphi for Win32编译器版本23.0 版权所有(c)1983,2011 Embarcadero Technologies,Inc。
test.dpr(3)致命:F1026找不到文件:'SysUtils.dcu'
这不会发生在Delphi XE上。
答案 0 :(得分:29)
如果您只想使用命令行(不使用dcc32.cfg),您要查找的命令行参数是-NS,以指定要搜索的命名空间...
所以,你会有这样的事情:
dcc32.exe -NSsystem;vcl test.dpr
这应该使编译器在System
和VCL
命名空间中查找单元(添加VCL以显示如何附加多个命名空间)。
此信息在Embarcadero Discussion Forums上找到。我还没有XE2所以我无法测试它。
答案 1 :(得分:13)
由于RTL和VCL中的新命名空间,您必须为编译器指定其他命令行参数。尝试“-NSSystem; System.Win; WinAPI; Vcl; Vcl.Imaging; Data”并根据需要添加其他名称空间。
答案 2 :(得分: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
答案 3 :(得分:-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位都没关系。