나는 우리는 델파이 파일 세트 (.pas
) 이러한 .pas
파일에서 생성 된 C++ 빌더 파일 (.hpp
및 .obj
)의 설정이 C++ 빌더 2009의 링커ILINK32 오류의 원인 : XXX.obj에서 참조 된 해결되지 않은 외부 '__fastcall 시스템 :: TObject :: NewInstance (System :: TMetaClass *)'?
Unresolved external '__fastcall System::TObject::NewInstance(System::TMetaClass *)' referenced from XXX.obj?
에서 다음과 같은 오류를 얻고있다.
파일 집합이 다른 컴퓨터에 복사됩니다. 두 시스템 모두 동일한 업데이트 (최신 : 3 + 4)가 설치된 C++ 빌더 2009 버전이 동일합니다.
다른 컴퓨터의 C++ Builder에서 비어있는 VCL 응용 프로그램을 만들고이 집합의 하나의 obj 파일을 활성 프로젝트에 포함하면 위의 링크 단계에서 오류가 발생합니다. 이 오류에 대한
이상한 일들은 다음과 같습니다
- 이 오류가없는 모든 컴퓨터 또는 C++ Builder를 설치 (I 그들 중 적어도 5 확인했습니다)에 재현 할 수 있습니다.
- obj-file을 제거하고 해당 pas 파일을 프로젝트에 추가하면 오류가 사라집니다.
- 하지만 pas 파일을 제거하고 obj 파일을 다시 포함하면 오류가 발생하지 않습니다.
- 프로세스에서 pas 파일의 obj가 수정되지 않습니다. 나는. 이 파일 세트를 컴퓨터에서 삭제하고 첫 번째 컴퓨터에서 다시 가져온 경우 (생성 된 위치) 다시 오류가 발생하지 않습니다.
- 특정 컴퓨터에서 해당 시퀀스를 수행하면 (프로젝트에서 include/exclude pas 파일) - 폴더간에 파일을 이동하거나 설정을 사용하여 재생할 때마다 더 이상이 컴퓨터에서이 오류가 발생하지 않습니다. , 등). 실제로, 나는 이미이 오류를 재현 할 수있는 기계가 없습니다. (
나는 "보이지 않는"상황 "after"가 "before"(pas-file 포함 /) 오류가 보이기 전과 후에 만 볼 수 있습니다.
인터넷에서이 오류 (또는 비슷한 오류)의 유일한 언급은 this입니다. 그러나 해결책은 없습니다. "+"문자가 없습니다. 경로 또는 공백 ("")
현재 뭔가가 누락 되었습니까? 지금 C++ Builder 버그입니다.
P. .hpp
및 .obj
(아니요 .pas
파일) 만 특정 시스템에 배포해야하므로 "pas 파일 만 포함"솔루션을 사용할 수 없습니다.
이 답변의 링크가 깨졌습니다. 실제 답변이 답변에 포함되어 있고 링크 된 경우가 아니라면 좋았을 것입니다. – HappyCoding