架构x86_64的未定义符号:c++;/h文件和cpp文件 我试图理解C++中的Head(.h)文件和源文件(.CPP)。我写了一个非常简单的例子来理解它。我的操作系统是MacOS。我在终端中运行“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

架构x86_64的未定义符号:c++;/h文件和cpp文件 我试图理解C++中的Head(.h)文件和源文件(.CPP)。我写了一个非常简单的例子来理解它。我的操作系统是MacOS。我在终端中运行“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,c++,C++,我的代码如下。请帮忙,谢谢 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.cpp文件: #include "Date.h" // Date cons

我的代码如下。请帮忙,谢谢

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.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;
}

您需要包含所有要编译的源代码

g++main.cpp Date.cpp-o二进制文件

#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;
}