【发布时间】:2009-07-31 23:00:06
【问题描述】:
我正在尝试解决一组包that apparently have dependency issues 的问题。偶尔在 Build All 期间,我会收到此错误:
Delphi“E2161 错误:RLINK32:打开文件 ________.drf 时出错”
什么意思/表示,什么是“drf”文件?
【问题讨论】:
标签: delphi packages custom-component
我正在尝试解决一组包that apparently have dependency issues 的问题。偶尔在 Build All 期间,我会收到此错误:
Delphi“E2161 错误:RLINK32:打开文件 ________.drf 时出错”
什么意思/表示,什么是“drf”文件?
【问题讨论】:
标签: delphi packages custom-component
除了Solving the 'cannot find drf file' problem when compiling packages 文章之外,我还遇到了Delphi bug report #44134,其中一位评论者提到问题源于您的 .dpk 文件与 .pas 文件位于同一目录中,而同一目录位于库路径和“根据需要重建”已启用。
因此,您可以通过三个选项来解决此问题:
*.dpk、*.dproj)放到一个单独的目录中,然后重新安装软件包。我已经成功了。【讨论】:
看起来this 原来是主要问题/解决方案。
打开所有你有源代码的包,并指定编译选项: “显式重建”而不是“需要时重建”。
【讨论】:
嗯...从来没有听说过他们。我刚刚搜索了激发您链接到的问题的项目,并且没有任何带有“DRF”扩展名的内容。检查here 并没有发现任何与德尔福相关的东西。但事实上这是一个链接器错误,而不是编译器错误,这让我猜测前两个字母代表“Delphi Resource”。
尝试搜索项目的目录树,看看是否可以找到任何具有 DRF 扩展名的内容。如果是这样,请尝试使用文本编辑器打开它,看看它是否可读,如果不是,如果您知道有关读取二进制文件格式的任何内容,请尝试使用十六进制编辑器。看看你能不能理解它。
如果你没有找到,那么 Delphi 可能是从它正在编译的代码中的某个地方得到的。尝试在目录树上运行 grep 搜索“DRF”,看看是否有任何结果。
【讨论】:
来自http://www.delphifaq.com/faq/delphi/delphi_ide/f157.shtml:
当你用包编译时,你 可以指定哪些包应该是 考虑联动。包裹 项目的需求被存储 进入临时 Windows 资源文件 带有 .DRF 扩展名。
无论带有许多下划线的文件是什么,链接器很可能会在它认为的临时目录中搜索它(您可以使用filemon 确认这一点)。 DelphiFaq 的解释是错误定义的 %TEMP% 是罪魁祸首,这很可能是任何原因。
【讨论】:
有时问题是文件访问权限。
解决方法是以管理员身份运行 Delphi。
【讨论】: