C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[11385] 아래 miru님과 공부맨님의 BDS2006 버그 리포트에 대해...
박지훈.임프 [cbuilder] 1650 읽음    2006-02-14 22:38
먼저 참고로...
제가 설치한 업데이트2 테스트 버전은, 집에 설치된 버전은 2주쯤 전의 버전이고, 회사의 경우에는 어제 수정된 새로운
버전입니다.

가장 먼저 miru님께서 올려주신.. dll의 링크 에러 문제...
집의 옛버전 업데이트2에는 말씀하신 에러가 동일하게 재연되는 것을 보고 나왔습니다.
그런데 새로 설치한 최신 업데이트2에서는 발생하지 않는군요.

그리고 공부맨님이 비슷하게 처음 올려주신, 콘솔 애플리케이션의 경우도 마찬가지입니다.
최신 업데이트2에서는 발생하지 않습니다.

사족으로 말씀드리면, 그런 에러가 발생했던 직접적인 원인은 짐작이 되는데...
말씀하신 에러는 "Unresolved external 어쩌구 referenced from 어쩌구" 이죠?
이 에러는 필요한 모듈이 링크되지 않았을 때 발생하는 에러입니다.

아마 버그의 실제 내용은, 모든 패키지를 정적으로 링크하도록 설정했음에도 불구하고 일부 lib 파일이 링크되지 않아서일
것입니다. 에러 메시지에 나열된 모듈들의 이름으로 추측해봤을 때, 링크에서 누락된 모듈은 rtl.lib 인 것 같습니다.

따라서, 업데이트2가 나오기 전에 문제가 계속된다면, BDS2006이 깔린 디렉토리 아래의 lib 디렉토리 아래에 있는 rtl.lib
파일(lib 디렉토리 아래 debug 혹은 release 디렉토리 두군데에 있습니다)을 강제로 링크하도록 하면 될 것 같습니다.

특정 파일을 강제로 링크하도록 하려면 세가지 방법이 있습니다.
1. 하나는 프로젝트 파일(2006에서는 *.bdsproj 파일)에 추가해주는 방법
2. 프로젝트 매니저의 해당 프로젝트 노드에서 Add... 버튼을 눌러 해당 파일을 찾아 추가해줌
3. 프로젝트 안의 아무 소스에서나 #pragma link "파일이름" 해줌


공부맨님이 알려주신, 메시지맵의 표시 문제는,
최신 업데이트2에서는 에디터에서는 아무 문제가 없습니다. 대신 스트럭쳐 뷰에서의 문제는 그대로 있네요.

공부맨님이 알려주신, 델파이 패키지(dpk) 파일에서 깨지는 문제는,
일단 업데이트2에서 재연은 안됩니다.

그런데 이 문제는, 제가 업데이트1 상태에서 여러 패키지를 불러서 작업했을 때 한번도
본 적이 없어서 좀 이상한데요. 제 생각에는 아마도 패키지 소스 내에 있는 일부 비표준 주석 때문인 것 같습니다.
보여주신 패키지 소스에는 다음과 같은 부분이 있죠.
{%File 'DirectX.inc'}
{%File 'Jedi.inc'}
이건 델파이에서 쓰이는 표준 형식이 아닙니다. 델파이의 컴파일러 디렉티브는 아시다시피 {$...} 이지, {%...} 가 아니죠.
BDS2006의 에디터에서 보여주는 색상에서도 이 부분의 색상은 청녹색(컴파일러 디렉티브)가 아니라 녹색(주석)으로
나오죠. 그런데 주석이 패키지의 requires와 contains 사이에 있는 것은 비정상적입니다. 패키지 프로젝트에서 requires와
contains 섹션은 델파이 IDE가 직접 관리하는 부분이므로 여기에 기타 다른 내용이 들어가면 오동작을 일으킬 수 있습니다.

문맥상으로 볼 때 이 {%File ...} 부분은 {$I ...}의 의미로, 즉 다른 파일을 인클루드하기 위해 사용된 것으로 추측됩니다.
그런데 델파이의 표준 컴파일러 디렉티브가 아닌 걸로 봐서는, 아마도 제가 잘 모르는 CVS의 특수 태그가 아닌가 싶기도
하네요. 뭐 어쨌든, 업데이트2에서 재연은 안됩니다. (프로젝트 옵션은 별별 희한하게 다 바꿔봤습니다)


miru님이 마지막으로 올려주신 버그 레포팅의 경우..
제 경험상 보면 C++빌더 IDE에서 coreide100.bpl와 bcbide100.bpl 관련으로 에러가 난 경우는, 닷넷 프레임워크쪽의
문제였던 경우가 많았습니다. C++빌더 IDE가 닷넷에 의존하는데, 닷넷을 언인스톨하거나 닷넷 프레임워크의 파일들 중
일부를 삭제해버리거나, 닷넷 관련 dll들의 레지스트리 항목에서 일부를 삭제한 경우, 말씀하신 것과 똑같은 에러를
봤습니다. 닷넷을 언인스톨하고 다시 설치해보시길 권하고 싶군요.

그럼...
양용성 [ysyang]   2006-02-15 14:45 X
정말 다 읽지는 못했지만 그 양으로 봐도 늘 너무 열심히십니다.
볼포에 안올수가 없어요 ^^ 늘 수고 많으십니다.

+ -

관련 글 리스트
11385 아래 miru님과 공부맨님의 BDS2006 버그 리포트에 대해... 박지훈.임프 1650 2006/02/14
11389     Re:아래 miru님과 공부맨님의 BDS2006 버그 리포트에 대해... 공부맨 1810 2006/02/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.