Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[1911] Re:클래스를 이용하여 만든 점수입력 프로그램이 에러가 나네요..해결좀(소스포함)
임문환 [mhlim] 1140 읽음    2003-01-29 00:34
프로잭트에 Add.cpp 파일을 추가하시든지

class.cpp 의 #include  "Add.h"를 #include  "Add.cpp"로 바꾸든지 하면 됩니다.

참고로, 아래 두 개의 에러는 링커 에러로서 아직 실행파일이 만들어지지도 않았습니다.
링커가 링크를 해주어야 비로소 실행 파일이 됩니다.
두 에러가 같은 종류이므로 앞에 것만 해석해보면
"C:\BC5\MY MADE FILE'S\C++소스\CLASS.OBJ 에서 참조한 'CAdd::add()'를 찾을 수 없습니다."
즉, CLASS.OBJ를 만들기 위해 사용된 소스 파일들 중 어디에선가 CAdd클래스의 add() 매서드를 참조했지만 링크에 포함된 모든 OBJ, LIB 등을 뒤져보아도 그 매서드를 발견할 수 없었다는 얘기입니다.

한편 컴파일과 링크는 다릅니다.
위 CAdd클래스의 경우 #include  "Add.h"를 해주었으므로 그러한 것의 실체가 나중에 링크 시에 있다고 가정하고 일단 컴파일합니다. 컴파일 시에 해당 매서드가 사용된 자리는 매서드 호출에 필요한 코드만 들어갑니다. 그리고 링크 시에 해당 클래스의 매서드의 실체가 저장된 번지를 구하여 앞의 컴파일 시에 매서드 이름에 해당하는 자리에 대체하는 형식입니다. 지금의 오류는 바로 이때 발생한 것입니다. 실체를 찾을 수 없었거든요...




경선 님이 쓰신 글 :
: C++을 한지 좀 됬습니다.(그런데 아직도 클래스..ㅠㅠ)
: C는 대충 알고여.
: 클래스를 이용하여 점수를 입력받고 합계, 평균을 출력하는 파일을 만드려고 소스를 짰습니다.
: 그런데 클래스를 이용하여 이 소스를 입력한 후 컴파일하면 에러가
: 안나는데 실행을 하면 '!Make failed'라는 작은 박스가 나오고 꼭 2가지 에러가 나네요.
: 에러 내용은 : 1. Unresolved external 'CAdd::add()' referenced from C:\BC5\MY MADE FILE'S\C++소스\CLASS.OBJ
: 2. Unresolved external 'CAdd::getvalue()' referenced from C:\BC5\MY MADE FILE'S\C++소스\CLASS.OBJ
:
: 이렇게 나옵니다. 제발 해결좀 해주세요.. 클래스를 이해해야 다음장으로 넘어가는데...
:
: (소스는 첨부 올렸습니다.)

+ -

관련 글 리스트
1909 클래스를 이용하여 만든 점수입력 프로그램이 에러가 나네요..해결좀(소스포함) 경선 1126 2003/01/28
1911     Re:클래스를 이용하여 만든 점수입력 프로그램이 에러가 나네요..해결좀(소스포함) 임문환 1140 2003/01/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.