2012-04-10 4 views
0

저는 Delphi 2 프로젝트를 RAD Studio XE2로 마이그레이션하려고합니다. F2051 Unit JclUnitVersioning이 System.Contnrs.TObjectList.Remove와 다른 버전으로 컴파일되었습니다.

내가 얻을 컴파일하려고

[DCC 치명적인 오류]에서 MyUnit (9) : F2051 단위 JclUnitVersioning은

System.Contnrs.TObjectList.Remove

의 다른 버전으로 컴파일 다음 행에서

:

unit MyUnit; 

interface 

uses 
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
    StdCtrls, DB, DBTables, TB97, ExtCtrls, Grids, DBGrids, Vcl.Mask, JvExMask, 
    Vcl.DBLookup, 
    JvToolEdit, {<-- error here} 
    TB97Ctls; 

{...} 

내가 제거하고 RAD 스튜디오, JCL 및 JVCL,하지만 아무것도 변경을 다시 설치했습니다.

업데이트 바이너리 Jedi installer from A.Hausladen (Delphi 평가판에서만 사용하기 위해)을 사용하고 있습니다.

+1

'Project/Options' 메뉴 항목으로 이동하십시오. Project Options 대화 상자에서'Search Path' 섹션에 올바른 경로를 설정했는지 확인하고, 이전 JCL 설치로 폴더로가는 경로가있는 경우 삭제하고 프로젝트를 다시 빌드하십시오. 해당 섹션에서 해당 디렉토리를 찾지 못하면'View/Project Manager'로 가서 프로젝트 항목을 마우스 오른쪽 버튼으로 클릭하고'Clean'과'Build'를 사용해보십시오. – TLama

+0

당신은 여전히 ​​제거하고 재설치하는 것만으로는 정리할 수 없다는 거짓말이 더 많이 있습니다. 언인스톨은 델파이의 현재 사용자의 레지스트리 설정을 지우지도 않았고 하드 드라이브를 포맷하지도 않았으므로 JCL이라는 이름의 DCU 파일이 어딘가에있을 가능성이 있습니다. 여기에는 더 많은 "상태"가 있습니다. 내 대답을 보라. 드라이브에서'JclUnitVersioning.dcu'의 사본을 찾으십시오. –

답변

1

다시 작성하거나 제거해야하는 오래된 DCU 파일이 있거나 사용자의 프로젝트 또는 라이브러리 경로 내용이 일관성이 없습니다. (적절한 JCL 라이브러리 폴더에없는 JclUnitVersioning.dcu라는 이름의 파일을 찾아 제거합니다. 적절한 라이브러리 폴더 jcl\lib\d7 명명 된, jcl\lib\d16을 통해, 당신의 델파이 버전 번호에 따라)

이것은 일반적으로 프로젝트가 액세스 할 수있는 것을 의미한다 사전 컴파일 된 DCU 파일을 포함하고 일부 소스 단위 (.pas 파일)에 액세스 할 수있는 라이브러리 경로 또는 프로젝트 검색 경로에있는 디렉토리와 이에 의존하는 하나 이상의 단위 다른 단위는 지금과 다른 시간에 컴파일되어 여러 버전의 공통 단위로 컴파일되었습니다. 나는 너에게 그림을 그릴 수 있었으면 좋겠다.

자동차를 가지고 누군가 엔진을 업그레이드하고 V6에서 V8으로 변경한다고 가정 해보십시오. 지금 당신의 엔진을 서비스하고 있었던 누군가 돌아오고, V6 '의 배출 다양성이 붙어있는 장소를 발견하려고 노력한다. 더 이상 존재하지 않으며 움직입니다. 새로운 엔진이 현재의 형태로 얼어 붙어서 (여기에 나와 함께 있으십시오!), 서비스 기술자는 단순히 당신 (고객)에게 돌아가서 "미안 해요, 혼란 스럽습니다. 계속할 수 없습니다, 포기합니다. ". 이것은 대략이 오류 메시지의 의미입니다.

여러 가지 방법으로 청소할 수 있습니다. .pas 개의 파일에서 100 %를 컴파일하고 .dcu 개의 파일이 포함 된 라이브러리 폴더가 전혀없는 것은 간단합니다. 물론 이상적인 방법은 아닙니다. 라이브러리 경로의 전체 목적은 DCU 파일의 미리 컴파일 된 "라이브러리"를 포함하는 것이었기 때문입니다.

그래서 대신 정리 (DCU 파일을 모두 삭제)하고 모든 구성 요소 패키지를 소스에서 다시 빌드 한 다음 (그 목적을위한 배치 파일을 가지고 있습니까?) 프로젝트의 검색 경로, 및 라이브러리 경로 모두에 포함해야한다고 생각되는 폴더 만 포함되어 있는지 확인하십시오.

+0

위대한! JCL과 JVCL을 [이 설치 프로그램] (http://andy.jgknet.de/blog/2011/11/updated-jcl-and-jvcl-binary-installers-for-xe2-2/)과 함께 설치 했으므로 그들은 내가 가진 문제를 해결했을 것입니다. 그러나 IDE의 다른 버전으로 컴파일 된 곳과 설치자는 단순히 IDE를 사용하여 소스를 컴파일하지 않고 DCU를 복사했습니다. 많은 감사합니다! – bluish

+2

바이너리 설치 프로그램은 TRIAL 버전의 델파이 사용자 만 사용할 수 있습니다. (게시 한 링크에 너무 분명하게 표시되어 있습니다!) 다행스럽게도 해결했습니다. 그러나 장래에 이상한 인스톨러를 사용했다면,이 질문에서 정규 설치 프로그램을 사용했다고 가정하십시오. –

1

델파이 2010 및 XE3 (마이그레이션하는 동안 동일한 PC에서)에서 동일한 문제가 발생했습니다.

몇 시간 동안 내 프로젝트와 JCL 프로젝트 (PC의 설치 프로그램 박쥐 파일 오류)를 다시 컴파일하면 tools/options/Delphi Options/libraries에서 디렉토리가 선언 된 순서대로 문제가 발견되었습니다.

버전 별 디렉토리 (예 : lib \ D14, lib \ D17 \ Win32)를 추가 한 다음 다른 JCL 하위 디렉토리 (예 : JCL을 사용하는 프로젝트가 빌드 될 때까지 한 번에 하나씩)를 추가하십시오.