我在从Delphi 2006迁移到Delphi 2009时遇到问题。使用JVCL的项目抱怨缺少jvconsts.res。该文件绝对存在。项目搜索路径包括文件所在的目录。 (注意:我的全局搜索路径中没有JVCL以使其更具可移植性)
但应该找到该文件,Delphi Help说:
“...链接器搜索.res 目录中的文件[...] 在“搜索路径”输入框中指定 在目录/条件页面上 项目|选项对话框“
这不是JVCL问题:简约程序显示:
想象一下这个目录结构:
C:\Test\ResTest.dpr
C:\Test\Res\Test.res
这是ResTest.dpr:
program ResTest;
{$R test.res} // not found even if "c:\Test\Res" is in project search path
begin
end.
这在Delphi 2006中编译得很好,但在Delphi 2009中没有。 经过一番搜索后,我找到了一种方法告诉Delphi文件的位置:gobal搜索路径或使用命令行编译器的-R参数。
在我写这篇文章时,我更接近真正的问题:在Delphi 2006中,.cfg-File包含以下行:
-I"c:\Test\Res"
-U"c:\Test\Res"
-R"c:\Test\Res"
基本上它将项目搜索路径中的值复制到3个命令行选项中,因此它确保-R参数具有正确的值。
在Delphi 2009中(我将编译器输出的详细程度设置为“debug”)我从IDE获得结果命令行:
如果目录(c:\ Test \ Res)包含在项目搜索路径中:
dcc32.exe --no-config -M -Q -ID:\Sources\Temp\1\Res;"c:\program files\codegear\rad studio\6.0\Lib" -LE"C:\Users\Public\Documents\RAD Studio\6.0\Bpl" -LN"C:\Users\Public\Documents\RAD Studio\6.0\Dcp" -O"c:\program files\codegear\rad studio\6.0\Lib" -R"c:\program files\codegear\rad studio\6.0\Lib" -UD:\Sources\Temp\1\Res;"c:\program files\codegear\rad studio\6.0\Lib" -K00400000 ResTest.dpr
如果目录包含在全局搜索路径中
dcc32.exe --no-config -M -Q -ID:\Sources\Temp\1\Res;"c:\program files\codegear\rad studio\6.0\Lib";D:\Sources\Temp\1\Res -LE"C:\Users\Public\Documents\RAD Studio\6.0\Bpl" -LN"C:\Users\Public\Documents\RAD Studio\6.0\Dcp" -O"c:\program files\codegear\rad studio\6.0\Lib";D:\Sources\Temp\1\Res -R"c:\program files\codegear\rad studio\6.0\Lib";D:\Sources\Temp\1\Res -UD:\Sources\Temp\1\Res;"c:\program files\codegear\rad studio\6.0\Lib";D:\Sources\Temp\1\Res -K00400000 ResTest.dpr
也许很难看到:差异是-R参数:
Local Search Path -> -R"c:\program files\codegear\rad studio\6.0\Lib"
Global Search Path -> -R"c:\program files\codegear\rad studio\6.0\Lib";D:\Sources\Temp\1\Res
所以难怪为什么它不起作用。本地搜索路径未附加到Delphi 2009中的-R参数。
我会说,这显然是一个错误,但为什么似乎没有其他人有这个问题?我可以在我们使用的所有机器上重现它。也许这个错误只出现在德语版的Delphi 2009中?
答案 0 :(得分:2)
解决方法是将其放入代码中:
{$R res\test.res}
这适用于我的Delphi 2009系统,包括IDE和命令行编译器。
请注意,我同意他们破坏了现有功能,您是否向Quality Portal添加了报告?如果没有,请执行:ttps://quality.embarcadero.com(这曾经是索引http://qc.embarcadero.com的搜索引擎但已被关闭; https://quality.embarcadero.com需要免费帐户才能搜索。< / p>