[英]Compiling projects with DCC32 as in Delphi 6 professional IDE
IDE:Delphi 6专业版。
我们有大项目。
我无法使用项目组来全部构建它们,因为这样做时会遇到OM错误和奇怪的文件错误。
我的想法是,我将使用DCC32.exe以前我曾与命令行参数(dcc32.cfg)进行过较量,但我认为我已解决了它。
今天,我尝试使用它来编译项目,但是在最初的项目中我遇到了错误。
chdir c:\\ d \\ anyproject dcc32 -b any.dpr
错误报告我找不到单位。 我尝试在Delphi中进行编译,并且成功。
所以我检查了问题。 为什么以前的项目建筑成功,为什么不成功?
然后,我意识到该dpr使用的是对子目录的引用,但并不是所有添加到项目中的文件,更多的文件是通过项目的“搜索路径”链接的。
但是,如果这是真的,那么这意味着DCC32不会使用项目的DOF / CFG文件!
因此,问题在于Delphi合并了所有内容以提供结果。 它合并了全局搜索路径,项目的编译器指令,搜索路径,以及所有内容,还使用了项目的条件指令。
如果我理解得很清楚,那么DCC32就不会使用,只会使用dcc32.cfg,而且我必须合并所有内容进行编译,这是不可能完成的工作,因为我需要编写一个解析器来解释项目的参数并合并与全球人士。
还是我误会了某件事,而问题又是由我错过的另一件事引起的?
我等待您的建议!
感谢您提供的所有想法,链接,信息等。
dcc32选项来自以下位置:
我按优先级从高到低的顺序排列这些。 因此,在源代码中指定的选项始终会覆盖dcc32.cfg文件或命令行中的设置。
dcc32.exe将选择它首先找到的dcc32.cfg文件。 它首先在当前目录中查找。
这意味着您有责任从.dof文件以及从IDE获取设置到命令行编译环境。
这是您应该升级的众多原因之一。 现代的Delphi版本使用msbuild进行命令行编译,并使其非常容易地确保您的命令行生成与IDE生成相同。
当您查看正在进行的msbuild时,您会看到它导致对dcc32.exe的调用,并在命令行上指定了所有选项。 您现在面临的是将项目设置转换为对dcc32.exe的调用。 在Delphi 6中,您必须自己做。 在现代的Delphi中,这些工具是产品的一部分。
这可能会有所帮助:
http://delphi.wikia.com/wiki/Compile_from_Commandline
它描述了如何使用从Delphi 1到XE3的Delphi版本进行命令行编译,并链接到可能会有所帮助的工具dof2cfg。
IIRC命令行编译器始终使用在当前文件夹或dcc32.exe所在的位置中找到的名为dcc32.cfg的配置文件。 您可以尝试将.cfg文件重命名或复制到dcc32.cfg,看看是否可以解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.