问题描述:
编程小白使用github协同开发一个比赛项目,Linux+Clion平台开发。
将队友最新的提交pull下来以后写了几段程序后编译,出现了莫名其妙的错误:
自定义的类'xxx',明明包含了头文件,却报错未声明
'xxx'was not declared in this scope
把我添加的代码部分注释掉(忘了注释头文件),还是会报同样的错误,队友说自己编译的时候没有问题(我当时好像也亲眼看到了),于是我尝试了很多方法,也搜了很多帖子,但找到的都是一些很复杂的东西,当天晚上整了好久,期间还尝试了删除文件重新构建,都没有解决。
问题解决:
第二天早上起来,觉得还是#include造成的错误,于是一个一个地试我添加的头文件,终于给我揪出来一个异常的头文件A,正好是那位队友更新的类。点进去看就发现是一个头文件相互包含的低级错误,比较难以理解的是他只是为了用一个全局变量(完全可以用extern关键字)就include一个类的头文件,当然他对C++使用不熟练,并且也是一个小白。
错误形式大致如下
A.h: #includeB.h: #include C.h: #include
总结:
头文件相互包含的错误虽然非常低级,但是在远程协同开发当中也是非常要注意,往往比较隐蔽,第一次遇到会比较头疼。所以要做好与队友沟通交流以及做好项目的系统设计。



