如何在命令行上编译我的delphi项目?

gat*_*ath 15 delphi command-line compilation delphi-7 delphi-6

有没有人设法使用命令行在那里编译Delphi 6和7(不是任何Delphi> 7)项目?

我看到的所有说明都不清楚到底需要去哪里!

我正在寻找一步一步的指示.

答案应限于Delphi 6和7,我理解Delphi2006并且>使用MSBuild,这要容易得多.

链接也很受欢迎.

迦特

mgh*_*hie 15

这并不难做到.我在我的机器上安装了标准的Delphi 5,当我打开命令提示符时,导航到该$(DELPHI)\Demos\Threads目录并输入dcc32.exe thrddemo.dpr应用程序是在命令行上构建的.

对于您自己的项目,您可能需要添加一些开关以包括文件目录,输出目录,定义或类似的东西.dcc32.exe不带参数运行会给出一个开关和参数列表.它也在文档中描述.

为了重复性,您应该创建批处理文件或常规Makefile.

请注意,项目cfg文件和dcc32.cfgDelphi目录中的common 都包含重要设置.有关它们如何影响构建的一些信息,请参阅Delphi Wikia上的此链接.

  • 谈论Delphi wiki:还有一个关于这个主题的页面:http://delphi.wikia.com/wiki/Compile_from_Commandline我刚才扩展了. (3认同)

mjn*_*mjn 9

对于构建自动化,我使用Apache Ant,这是一个用于自动化软件构建过程的软件工具.我将它用于我的所有项目,从Delphi 6到Delphi 2009,以及Free Pascal.

它可以"开箱即用"的东西包括MD5校验和生成,ZIP文件创建,文本搜索/替换(对版权标题生成有用),SQL语句的执行,XSLT处理.

例如,要使用Delphi 6编译所有项目,这是脚本的一部分:

<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>
Run Code Online (Sandbox Code Playgroud)

像Hudson/Jenkins这样的免费开源CI(Continous Integration)服务器支持开箱即用的Apache Ant构建脚本,这意味着每当您检查源存储库中的更改时,您都可以让它们自动构建项目.


nev*_*ves 5

您可以使用以下命令行构建所有内容:

"C:\Program Files\Borland\Delphi7\Bin\DCC32.exe" -Q -B your-project.dpr
Run Code Online (Sandbox Code Playgroud)

将此行放在.bat文件中,因此您不必总是键入它。查看运行此命令的命令行选项:

"C:\Program Files\Borland\Delphi7\Bin\DCC32.exe" -h
Run Code Online (Sandbox Code Playgroud)

顺便说一句:-Q是安静的编译器,-B将重建所有内容。如果要更快地编译,请不要使用-B。

它将使用your-project.cfg文件中的所有选项。我发现此dof2cfg可执行文件非常有用。有了它,我可以编辑.dof文本文件,并将更改传播到命令行和IDE。无需为每个项目进行编辑。

关于长路径的重要警告: Delphi 7命令行编译器有一个非常奇怪的错误。如果您的路径很长,它将失败并显示一个难以理解的错误:没有任何有意义信息的访问冲突。如果失败没有任何合理的动机,请尝试减小最大路径大小和文件名大小。通常将项目放在根文件夹中即可解决该问题。

  • 我刚刚编写了bdsproj2cfg并将其上传到CodeCentral,它与Delphi 2005和2006使用的.bdsproj文件相同。以防万一有人需要它... (2认同)

Fra*_*ois 3

FinalBuilder使它变得非常容易。试一试。

  • 如果没有添加有关如何解决问题的实际说明(甚至链接到说明),这个答案听起来就像植入式广告。 (2认同)