2009-04-22 3 views
6

Delphi 2006에서 Delphi 2009로 마이그레이션 할 때 문제가 있습니다. JVCL을 사용하는 프로젝트에서 jvconsts.res가 누락되었다고 불평합니다. 파일은 분명히 있습니다. 프로젝트 검색 경로에는 파일이있는 디렉토리가 포함됩니다. "Delphi 2009의 버그? -> * .res가 프로젝트 검색 경로에 없습니다. (Delphi 2006에서 작동합니다.)

... 링커 검색을위한 :

을하지만 Delphi Help 말한대로 파일을 발견해야합니다 (더 휴대용 수 있도록 내 글로벌 검색 경로에 JVCL을 필요가 없습니다) 디렉터리/조건문 페이지 프로젝트의 에 검색 경로 입력 상자 에 지정된 디렉토리 에서 파일 [...] .RES | 이것은 JVCL 문제가 아닙니다 옵션 대화 상자 "

을하십시오 미니멀리스트 프로그램은 이것을 보여준다 :

program ResTest; 

{$R test.res} // not found even if "c:\Test\Res" is in project search path 

begin 
end. 

이 델파이 2006에서 잘 컴파일하지만 델파이 2009 년 약간의 검색 후 나는 방법을 발견 :

여기
C:\Test\ResTest.dpr 
C:\Test\Res\Test.res 

가 ResTest.dpr입니다 :

이 디렉토리 구조를 상상해 델파이에게 파일의 위치를 ​​알려주는 것 : 명령 행 컴파일러를 사용하는 고블 탐색 경로 또는 -R 매개 변수.

나가 이것을 쓰기 때문에, 내가 가까이 진짜 문제에 와서는 : 델파이 2006 년 .CFG 파일은 라인을 포함

-I"c:\Test\Res" 
-U"c:\Test\Res" 
-R"c:\Test\Res" 

Basicly 3 명령으로 프로젝트 검색 경로의 값이 복사를 -R 매개 변수에 올바른 값이 있는지 확인합니다. 디렉토리

경우 (C : \ 테스트 \ 해상도)가 포함되어 델파이 2009 년

나는이 IDE에서 결과 명령 줄을 얻을 (I는 "디버그"이 컴파일러 출력의 상세 설정) 프로젝트 검색 경로 :

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 매개 변수에 추가되지 않습니다.

분명히 버그이지만, 왜이 문제가 발생하지 않는 것입니까? 우리가 사용하는 모든 기계에서이를 재현 할 수 있습니다. 아마 델파이 2009의 독일어 버전에만 오류가 있습니까?

답변

2

해결 방법은 대신 코드에 넣고하는 것입니다

는 IDE 및 명령 줄 컴파일러와 함께 모두 델파이 2009 내 시스템에서 작동
{$R res\test.res} 

.

기존 기능이 중단 되었음에 동의합니다. 보고서를 품질 포털에 추가 했습니까? 그렇지 않다면 : ttps : //quality.embarcadero.com (검색 엔진은 http://qc.embarcadero.com으로 색인되었지만 종료되었습니다; https://quality.embarcadero.com은 검색에 무료 계정이 필요합니다).

+0

이 코드는 Google 코드에서 작동하지만 필자가 피하고 싶은 thirdparty 코드 (JVCL)를 수정해야합니다. –

+0

이 버그에 대해 QualityCentral에 항목을 만들었습니다. # 73249 –

+2

제 3 자 코드를 수정하고 싶지 않다는 것에 동의합니다. 보고서의 Thx입니다. 방금 ​​http://qc.codegear.com/wc/qcmain.aspx?d=73249를 확인하고 일부 보고서 필드를 수정 한 다음 CodeGear의 Q & A 팀이 내부 시스템에서이를 볼 수 있도록 승격했습니다 –

관련 문제