2016-07-27 4 views
5

非常に基本的なC++プログラムをコンパイルしようとしていますが、何か問題があります。それが何であれ、それは非常に明白だと確信しています。 3つの非常に短いファイルがあります。Basic 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; 
} 

コマンド私はusinよコンパイルする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

コンパイラは、コンパイルされていないファイルで関数本体を自動的に見つけることができません。 – 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-シンボルエラーとハウツー - 私 - 修正) –

答えて

7

コメントに記載されているように、あなたはPlayer.cppをコンパイラに供給していません。すべてのcppファイルをコンパイラに渡すべきです。

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