使用Delphi 6专业IDE中的DCC32编译项目

时间:2012-11-09 11:59:48

标签: delphi delphi-6

IDE:Delphi 6 Professional。

我们有大项目。

我无法使用项目组来构建它们,因为我在执行此操作时遇到了OM错误和奇怪的文件错误。

我的想法是我将使用DCC32.exe 之前我与命令行参数(dcc32.cfg)打架,但我认为我解决了它...

今天我尝试用它编译项目,但是在第一个项目中我遇到了错误。

chdir c:\ d \ anyproject dcc32 -b any.dpr

错误报告我发现没有找到一个单位。我试图在Delphi中编译,但它很成功。

所以我检查了问题。为什么以前的项目建筑成功,为什么这不是......?

然后我意识到这个dpr正在使用对子目录的引用,但并不是所有添加到项目中的文件,其中更多是通过项目的“搜索路径”链接的。

但如果这是真的,那么这意味着DCC32没有使用该项目的DOF / CFG文件!

所以问题是Delphi合并了所有内容以提供结果。 它合并了全局搜索路径,项目的编译器指令,搜索路径,所有内容,以及使用项目的条件指令。

如果我理解得很好,DCC32不使用,只有dcc32.cfg,我必须合并编译的所有内容,这是一项不可能的工作,因为我需要编写一个解析器解释项目的参数,并与全局变量合并。

或者我误解了一些问题,问题是由我错过的其他事情造成的?

我在等你的建议!

感谢所有想法,链接,信息等。

3 个答案:

答案 0 :(得分:9)

来自以下地方的

dcc32选项:

  1. dcc32.cfg文件。这可以是当前目录,也可以是与dcc32.exe相同的目录。
  2. 命令行。
  3. 源代码。
  4. 我按照优先顺序排序。因此,源代码中指定的选项始终会覆盖创建dcc32.cfg文件的设置,或者在命令行上。

    dcc32.exe将选择它首先找到的dcc32.cfg文件。它首先在当前目录中查找。

    这一切意味着您负责从.dof文件获取设置,并从IDE进入命令行编译环境。

    这是您升级的众多原因之一。现代Delphi版本使用msbuild进行命令行编译,并且很容易确保命令行构建与IDE构建相同。

    当您观看正在进行的msbuild时,您会看到它会调用dcc32.exe,并在命令行中指定所有选项。将项目设置转换为对dcc32.exe的调用是您现在面临的问题。在Delphi 6中,您必须自己完成。在现代的Delphi中,这些工具是产品的一部分。

答案 1 :(得分:1)

这可能会有所帮助:

http://delphi.wikia.com/wiki/Compile_from_Commandline

它介绍了如何使用Delphi 1到XE3的Delphi版本进行命令行编译,还链接到dof2cfg工具,您可能会发现它有用。

答案 2 :(得分:0)

IIRC命令行编译器始终使用在当前文件夹或dcc32.exe所在的位置找到的名为dcc32.cfg的配置文件。您可以尝试将.cfg文件重命名或复制到dcc32.cfg,看看是否能解决您的问题。