【问题标题】:Delphi compile error F2048 Bad unit formatDelphi 编译错误 F2048 Bad unit format
【发布时间】:2017-05-18 03:55:26
【问题描述】:

我遇到了一个晦涩的错误,并在此处发布解决方案,希望它能帮助遇到同样问题的其他人。

我正在使用 Delphi XE4 编写一个持续集成 (CI) 程序,以确保一组 pascal 源文件可以在旧版本的 Delphi 下编译。这个 CI 程序运行一系列批处理文件,每个批处理文件都运行旧 Delphi 版本的命令行编译器。运行XE编译器的批处理文件产生如下错误:

F2048 错误的单元格式:'c:\program files (x86)\embarcadero\rad studio\11.0\lib\Win32\release\System.dcu' - 预期版本:22.0 ...找到的版本:25.0

请注意,预期和找到的版本是不同的(在本例中为 XE 和 XE4)。有几个人报告了预期版本和发现版本相同的类似错误 - 这通常是 32 位和 64 位 DCU 之间的混合,但这不是问题所在。

只有在 Delphi XE4 IDE 中运行 CI 程序时才会出现此问题。如果 CI 程序在 IDE 之外运行,它可以正常工作。

【问题讨论】:

    标签: delphi


    【解决方案1】:

    XE4 IDE 添加了几个环境变量,这些环境变量由正在调试的程序(在本例中为 CI)继承,而这些环境变量又由批处理文件继承。在批处理文件中运行时,这些额外的环境变量之一会混淆 XE 编译器。罪魁祸首是添加的 BDSLIB 环境变量指向 XE4 lib 目录。

    解决方案是简单地添加

    设置 BDSLIB=

    到每个批处理文件的开头。进行此更改后,CI 程序将在 IDE 内部和外部成功运行。

    【讨论】:

      猜你喜欢
      • 2016-07-18
      • 1970-01-01
      • 2013-09-12
      • 2014-04-07
      • 2014-01-12
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      • 2021-02-06
      相关资源
      最近更新 更多