本来只是想将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脚本里头