// 重复包含头文件
duplicate symbol for architecture x86_64
如果某一个.h在多个.cpp文件中都包含了(主要是在不同的.cpp中使用了同一个.h中的某个函数),那么运行时该.h就会被同时链接到两个不同的.o文件中。会出现报错,修复方法:将该.h中的被使用的函数前面加上inline即可。
参考:how-to-avoid-duplicate-symbols-when-compiling
// 随机报错
在运行demo的时候有时候正确,有时候错误.可能原因之一是函数没有返回值导致的,没有return的话函数会默认返回一个默认值,可能并不正确,从而导致随机报错.所以函数一定都要有返回值,或者设置成void等.!
// pure virtual method called
class A : public B {}
// B中有virtual method. 在调用A的方法时pure virtual method called报错:
// A在调用前被析构了导致的
// XXX does not name a type
1. 头文件包含不正确
2. 头文件之间相互包含,在a中包含了b, b也包含了a.