2017-08-21 10 views
-1

C++でヘッダ(.h)ファイルとソースファイル(.cpp)を理解しようとしています。私はそれを理解するための非常に簡単な例を書いた。私の操作システムはMac OSです。私はターミナルで "g ++ main.cpp"を実行します。しかし、以下のようにコンパイルエラーが発生します。アーキテクチャx86_64の未定義のシンボル:C++/hファイルとcppファイル

Undefined symbols for architecture x86_64: 
    "Date::Date(int, int, int)", referenced from: 
     _main in main-0f869d.o 
ld: symbol(s) not found for architecture x86_64 

マイコードは次のとおりです。助けてください、ありがとう

main.cppにファイル:

#include <iostream> 
#include "Date.h" 
using namespace std; 

int main() 
{ 
    Date d(2017, 08, 20); 
    cout<<"getYear="<<d.getYear()<<endl; 
    return 1; 
} 

Date.hファイル:

#ifndef DATE_H 
#define DATE_H 

class Date 
{ 
    private: 
    int m_year; 
    int m_month; 
    int m_day; 

    public: 
     Date(int year, int month, int day); 
     void SetDate(int year, int month, int day); 

     int getYear() { return m_year; } 
     int getMonth() { return m_month; } 
     int getDay() { return m_day; } 
    }; 
#endif 

Date.cppファイル:

#include "Date.h" 

// Date constructor 
Date::Date(int year, int month, int day) 
{ 
    SetDate(year, month, day); 
} 

// Date member function 
void Date::SetDate(int year, int month, int day) 
{ 
    m_month = month; 
    m_day = day; 
    m_year = year; 
} 

答えて

2

あなたがする必要がありますコンパイルしたいすべてのソースが含まれています。

g++ main.cpp Date.cpp -o binary_file