-
‘XXXX’不是自己写的。说明是这个变量或者函数实现的文件未导入,先找到‘XXXX’属于哪个库,然后在CMakeList.txt中添加相应的静态库或者动态库。
-
‘XXXX’是自己写的。查看实现的源文件(.cpp)中和头文件(.h)中的定义是否一致,不一致就会出现此错误。或者查看CMakeList.txt中是否引入了相关的cpp文件。未引入的可以使用add_executable中引入,或者其他可以添加的方法。(一般在add_executable的括号中后面添加相应的cpp文件名就行,或者其他添加方法)
-
‘XXXX’是自己写的。并且在CMakeList.txt已经添加。那么看看是不是静态变量。静态变量必须在cpp中初始化。
//例子:
// .h文件中
class Bag{...};
class Student
{
public:
static Bag* stu_no;
bool GotoSchool();
...
};
//.cpp文件中
Bag* Student::stu_no = nullptr; //必须初始化静态成员。不初始化就会出现‘student::stu_no’未定义的引用。
bool Student::GotoSchool()
{
//TODO
}