有没有人曾经成功使用命令行编译他们的Delphi 6和7项目(不是任何版本大于7的Delphi)?
我看到的所有说明都不太清楚需要将什么放在哪里!
我正在寻找逐步指南。
答案应该仅限于Delphi 6和7:我知道Delphi 2006及更高版本使用MSBuild,这要容易得多。
链接也会很受欢迎。
Gath
有没有人曾经成功使用命令行编译他们的Delphi 6和7项目(不是任何版本大于7的Delphi)?
我看到的所有说明都不太清楚需要将什么放在哪里!
我正在寻找逐步指南。
答案应该仅限于Delphi 6和7:我知道Delphi 2006及更高版本使用MSBuild,这要容易得多。
链接也会很受欢迎。
Gath
这并不难做到。我在机器上安装了标准的 Delphi 5,并且当我打开命令提示符、导航到 $(DELPHI)\Demos\Threads
目录并输入 dcc32.exe thrddemo.dpr
时,应用程序就会在命令行上构建。
对于您自己的项目,您可能需要添加一些开关以包括文件目录、输出目录、定义或类似的内容。运行dcc32.exe
而没有任何参数会给出一个开关和参数列表。文档中也有详细说明。
为了重复性,您应该创建一个批处理文件或一个常规的 Makefile。
请注意,项目cfg
文件和Delphi目录中的公共dcc32.cfg
都包含重要的设置。有关它们如何影响构建的一些信息,请参见例如Delphi Wikia上的此链接。
<target name="compile_d6">
<!-- Compile with Delphi 6 -->
<apply executable="${d6}\Bin\dcc32" failonerror="true" output="build-d6.log" >
<!-- rebuild quiet -->
<arg value="-B"/>
<arg value="-Q"/>
<!-- file paths -->
<arg value="-I${source};${indy10}/Lib/System"/>
<arg value="-O${source};${indy10}/D6;${jcl}/d6"/>
<arg value="-U${source};${indy10}/D6;${jcl}/d6"/>
<!-- all *.dpr files in current directory -->
<fileset dir=".">
<patternset><include name="*.dpr"/></patternset>
</fileset>
</apply>
</target>
免费开源的CI(持续集成)服务器,如Hudson/Jenkins,支持Apache Ant构建脚本,这意味着您可以让它们在您检入源代码库中的更改时自动构建项目。
"C:\Program Files\Borland\Delphi7\Bin\DCC32.exe" -Q -B your-project.dpr
"C:\Program Files\Borland\Delphi7\Bin\DCC32.exe" -h
顺便提一下:-Q 是静默编译,而 -B 则会重新构建所有内容。如果您想要更快的编译速度,请不要使用 -B。
它将使用 your-project.cfg 文件中的所有选项。我发现这个 dof2cfg 可执行文件 非常有用。使用它后,我可以编辑 .dof 文本文件并将更改传播到命令行和 IDE 中。不需要为每个项目编辑它。
长路径的重要警告:Delphi 7 命令行编译器存在一个非常奇怪的 bug。如果路径非常长,则会出现无法理解的错误:访问冲突且没有任何有意义的信息。如果它没有合理的理由失败,请尝试减少最大路径大小和文件名大小。通常将项目放在根文件夹中可解决此问题。
对于 Delphi 的后续版本,应该将其更改为:
"C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\bin\DCC32.exe" -h