在Build All期间,Delphi“E2161错误:RLINK32:打开文件________。drf时出错”

时间:2009-07-31 23:00:06

标签: delphi packages custom-component

我正在尝试解决一组包that apparently have dependency issues的问题。偶尔在Build All期间,我收到此错误:

Delphi“E2161错误:RLINK32:打开文件时出错________。drf”

它是什么意思/表示什么是“drf”文件?

5 个答案:

答案 0 :(得分:4)

除了Solving the 'cannot find drf file' problem when compiling packages文章之外,我还遇到了Delphi bug report #44134,其中一位评论者提到问题源于将.dpk文件与.pas文件放在同一目录中同一目录位于库路径中,并且“根据需要重建”已启用。

因此,您有三种方法可以解决此问题:

  • 关闭“根据需要重建”。这似乎是最常见的解决方案。
  • 将您的包文件(*.dpk*.dproj)放入单独的目录中,然后重新安装包。我成功了。
  • 从库路径中删除包含.dpk和.pas文件的目录。请注意,在某些情况下,Delphi会再次添加它,包括安装/重新安装软件包时。

答案 1 :(得分:3)

看起来this似乎是主要问题/解决方案。

打开您拥有源代码的所有软件包,并指定编译选项: “明确重建”而不是“需要时重建”。

答案 2 :(得分:2)

来自http://www.delphifaq.com/faq/delphi/delphi_ide/f157.shtml

  

使用包编译时,你   可以指定应该包含哪些包   考虑联系。包裹   项目的要求得到了保存   进入临时Windows资源文件   扩展名为.DRF。

无论具有多个下划线的文件是什么,链接器很可能在它认为的tempdirectory中搜索它(您可以使用filemon确认)。 DelphiFaq的解释,其中错误定义的%TEMP%是罪魁祸首,就像任何理由一样。

答案 3 :(得分:1)

嗯......从来没有听说过他们。我刚刚搜索了那个激发你所链接问题的项目,并且那里没有“DRF”扩展。检查here并没有发现与Delphi相关的任何内容。但是这是一个链接器错误,而不是编译器错误的事实会让我猜测前两个字母代表“Delphi资源”。

尝试搜索项目的目录树,看看是否可以找到任何具有DRF扩展名的内容。如果是这样,尝试使用文本编辑器打开它以查看它是否可读,如果没有,如果您对读取二进制文件格式有任何了解,请尝试使用十六进制编辑器。看看你是否能够理解它。

如果你没有找到,那么Delphi可能会从它编译的代码中的某个地方获取它。尝试在目录树上运行grep搜索“DRF”并查看它是否显示任何内容。

答案 4 :(得分:0)

有时问题是文件访问权限。

解决方法是以管理员身份运行Delphi。