0

我正在将我的代码从 Delphi 2007 移动到 XE7。我的程序使用后期绑定打包方式。所以我用“与运行时包的链接”选项编译我的应用程序。2007年我用了很长时间。

但是在 XE7 中,同样的包结构,导致:

“单元 X 是用不同版本的 Y.Txyz 编译的”错误消息。

我的一个包裹中的 X 单元。Y 单元也在一个库包中。关系似乎还可以。为什么 XE7 会出现此错误?我尝试了以下方法:

  • 我清除了 .dcu 文件。
  • 我在包中打开按需构建选项。
  • 构建所有每个包和应用程序文件。

编译器传递了一些错误,但在其他地方重复“..用不同版本编译..”类型错误..

我不清楚这个问题。XE7的逻辑有变化吗?最好的祝福

4

1 回答 1

0

我专注于这个问题,我意识到 XE7 与 Delphi2007 的一些不同之处。

  • 编译器搜索 *.dcu 文件。如果以某种方式生成了多个版本的 *.dcu 文件,则其中一个包可能会产生“使用不同版本编译的单元”错误。

  • 如果源包声明为“Rebuild as Needed”,则在使用源包编译其他包时,再次编译单元并生成新的 dcu 文件。因此,请改为选中“显式重建”。

  • 我为所有包创建了通用 dcu 路径并在“单元输出目录”中声明。

于 2015-05-06T09:39:21.687 回答