2010-04-30 5 views
0

나는 다음과 같은 라인이있는 파일 A.cpp이 : 나는 다음과 같은 한 B.h에서C++ 링커 오류

#include"B.h" 
int main(int argc, char **argv) 
{ 
    ... 
    char *input_file = *argv; 
    B *definition = new B(input_file); 
    ... 
} 

을 :

내가 컴파일 할 때
class B 
{ 
    public: 
    // Constructors 
    B(void); 
    B(const char *filename); 
    ... 
} 

, 나는 다음과 같은 오류가 발생합니다 : undefined reference to 'B::B(char const*)'

수정 방법에 대한 제안 사항이 있으십니까?

감사합니다.

+1

-1 함수를 정의 했습니까? –

답변

2

B::B(char const *)에 대한 정의가 필요합니다. B::B(char const *)에 대한 선언 만 제공하고 링커가 실제로 해당 함수를 찾을 수 없다는 불만을 제기하고 있습니다.

2

함수의 헤더를 지정한 것처럼 보였지만 함수의 본문을 실제로 작성한 적이없는 것 같습니다.

I.E. 기능을 정의해야합니다.

B::B(const char *filename){ 
    // Do stuff 
} 

(B.cpp).

문제는 const 정확성과 관련이 없습니다.