我從Delphi 2006遷移到Delphi 2009時出現問題。使用JVCL的項目抱怨jvconsts.res丟失。該文件是definitly那裏。項目搜索路徑包括文件所在的目錄。 (注:我沒有JVCL在我的全局搜索路徑,使其更便攜)德爾福2009年的錯誤? - > * .res在項目搜索路徑中找不到(在Delphi 2006中工作)
但該文件應該可以發現,作爲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.
編譯沒有在2006年德爾福但不是在2009年德爾福一些 搜索後,我發現,這是一種告訴Delphi文件的位置:使用命令行編譯器的全局搜索路徑或-R參數。
我寫這篇文章,我更接近真正的問題:2006年,德爾福的.CFG,文件包括線:
-I"c:\Test\Res"
-U"c:\Test\Res"
-R"c:\Test\Res"
Basicly它複製從項目搜索路徑的值到3命令行選項,因此它確保-R參數具有正確的值。
在2009年德爾福(我設定的編譯器輸出的詳細程度,以「調試」),我從IDE生成的命令行:
如果該目錄(C:\測試\ 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
所以這也難怪爲什麼它不起作用。本地搜索路徑不附加到德爾福2009年的-R參數。
我會說,這顯然是一個錯誤,但爲什麼似乎沒有人有這個問題?我可以在我們使用的所有機器上重現它。也許這個錯誤只存在於Delphi 2009的德文版本中?
這將與我們的代碼一起工作,但我必須修改我非常喜歡避免的第三方代碼(JVCL)。 – 2009-04-22 15:49:50