linux下C++报错:未定义的引用

本来只是想将vs上的代码拷到linux中去运行,结果出现了许多奇怪的问题。

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

using namespace std;

int main(void) {
    Person *Tom = new Person("Tom", 23, "123");
    return 0;
}

用g++编译,结果报错“未定义的引用”。Person类是和main在一个目录中。
之后我尝试将Person的所有代码都放在main之前,结果运行正常。我想请教各位大神这是什么原因?

因为你还需要编译的时候把Person的cpp文件也一起编译

使用g++编译时两个文件一起编译 比如 g++ Person.h main.cpp

目测是没有找到person.h这个头文件。

比如说如果你的Person.h头文件中包含other.cpp的话,就在g++命令中加入这个文件:g++ main.cpp other.cpp。嫌麻烦的话就写进ssh脚本里头