c++编译过程中遇到的问题解决方法记录
1. error:xxx is not a member of ‘xxx‘, no matching function…
-
问题原因
头文件循环依赖
-
解决方法
2. xxx.so: 对‘self-defined function‘ 未定义的引用;recipe for target xxx failed.
-
问题原因
生成可执行文件时没有找到被调函数的具体实现
-
解决方法
3. ‘xxx’ does not name a type
-
问题原因
没有添加被调函数头文件;
加了被调函数头文件,但是调用时类名写错;
头文件互相依赖; -
解决方法
(1) 如果是因为头文件互相依赖,根本的解决方法是解耦。临时解决方法
提前声明 或 将不知道具体类型的类声明为指针(2) 被调函数头文件未添加
4. error: prototype for ‘function’ does not match any in class
-
问题原因
函数声明和定义不一致(函数名写错/返回类型写错/参数写错等);
被调函数在类中没有声明; -
解决方法
如果是声明和定义不一致,检查修改即可
5. error ‘xxx’ has not been declared
-
问题原因
忘记添加被调函数的头文件;
没有在命名空间内或者命名空间写错;
… -
解决方法
6. error: non-member function ‘xxx’ cannot have cv-qualifier
-
问题原因
非成员函数尾部添加了const;
添加了const的成员函数声明和定义不一致;
static静态成员函数尾部添加了const; -
解决方法
参考文章:
头文件循环依赖报错
xxx not been declared
created by shuaixio, 2022.04.17