2016-07-27 3 views
5

아주 기본적인 C++ 프로그램을 컴파일하려고하는데 잘못된 것이 있습니다. 그것이 무엇이든, 나는 그것이 아주 분명하다고 확신합니다. 3 개의 짧은 파일이 있습니다.기본 C++ 클래스 컴파일

MAIN.CPP :

#include <iostream> 
#include "Player.h" 

using namespace std; 

int main() 
{ 
    Player rob; 
    cout << "Iran" << endl; 
    return 0; 
} 

Player.h

#ifndef PLAYER_H 
#define PLAYER_H 

class Player { 
public: 
    Player(); 
private: 
    int score; 
}; 

#endif 

Player.cpp

#include "Player.h" 

Player::Player(){ 
    score = 0; 
} 

명령 내가저기서 해요 컴파일 g는 g++ main.cpp -o main 내가 컴파일러에 의해 발행되고있어 오류는 다음과 같습니다

/tmp/ccexA7vk.o: In function `main': 
main.cpp:(.text+0x10): undefined reference to `Player::Player()' 
collect2: error: ld returned 1 exit status 

주 : 이러한 모든 파일은 같은 디렉토리에 있습니다.

+4

'player.cpp' 파일을 컴파일 해보십시오. 컴파일러는 자동으로 컴파일되지 않은 파일에서 함수 본문을 찾을 수 없습니다. – Xarn

+5

Player.cpp를 컴파일하지 않은 것처럼 보입니다. 'g ++ main.cpp Player.cpp -o main'을 시도해보십시오. – user4581301

+4

[정의되지 않은 참조/확인되지 않은 외부 기호 오류 란 무엇입니까? 수정 방법은 무엇입니까?] (http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external- symbol-error-and-do-do-i-fix) –

답변

7

주석에서 언급했듯이 Player.cpp를 컴파일러에 공급하지 않습니다. 모든 cpp 파일을 컴파일러에 제공해야합니다.

g++ main.cpp Player.cpp -o main