单元GIFImg是使用不同版本的CCR.Exif.Consts.SOutOfResources编译的

时间:2012-01-21 19:25:19

标签: delphi delphi-xe

我试图在我的一个软件包中使用EXIF库。之前有用,但现在我收到了一些奇怪的信息:

  

[DCC致命错误] F2051单位GIFImg是用不同的编译的   CCR.Exif.Consts.SOutOfResources的版本

我真的不明白......为什么Delphi会尝试重新编译其中一个文件?我该如何解决这个问题?

GifImg位于:

  

c:\ Program Files \ Embarcadero \ RAD Studio \ 8.0 \ source \ vcl \ GIFImg.pas

更新

我查看了该文件的日期(1个PAS和2个DCU),它与RAD Studio \ 8.0 \ source \ vcl文件夹中的任何其他文件具有相同的日期。因此,该文件未被意外修改。

UPDATE2:

这是我的使用条款:

USES Windows, SysUtils, AnsiStrings, Graphics, Dialogs, Classes, jPeg,
     pngImage,                     
     janFX,   //CCR.Exif,
     {$IFDEF VER150}
        GIFImageFinn     {Delphi 7}
     {$ELSE}  
        GIFImg           {Delphi 2010/XE}
     {$ENDIF}
     ; 

如果我评论CCR.EXIF单元,它会开始编译我的包。因此,将EXIF添加到我的包中会破坏一些东西。

2 个答案:

答案 0 :(得分:1)

您报告的内容并不完全相加。作为Delphi源代码的GIFImg单元不引用CCR.Exif.Consts.SOutOfResourcesGIFImg使用的单位都没有引用它。

所以对我来说似乎合理的解释是:

  1. 您在项目的某处包含了一个名为GIFImg的单元。
  2. 您发现了编译错误。
  3. 根据我的经验,当您尝试重新编译RTL / VCL单元但未能将项目选项设置为与真实RTL / VCL使用的项目选项匹配时,通常会发出错误消息F2051。或者,当您重新编译在其接口部分中有修改的RTL / VCL单元时,它将被发出。

答案 1 :(得分:0)

解决:

我删除了文件名中的圆点。 CCRExif而不是CCR.Exif。

那是一个讨厌的人。