体系结构x86_64的未定义符号:c ++ / h文件和cpp文件

时间:2017-08-21 23:58:31

标签: c++

我试图理解c ++中的头文件(.h)文件和源文件(.cpp)。我写了一个非常简单的例子来理解它。我的操作系统是Mac OS。我在终端运行“g ++ main.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;
}

1 个答案:

答案 0 :(得分:2)

您需要包含您想要编译的所有资源。

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