问题描述
新拉下来代码,用GHS编译报错了,找不到头文件。
"..\..\***\source\CAN\CanStackCfg\can_cfg\Com_PbCfg.h", line 28: fatal error #2330:
cannot open source file "Com_PBCfg_CodeGenerate.h"
#include "Com_PBCfg_CodeGenerate.h"
类似的还有一些类似的报错,都是找不到头文件,一共26个。
但是查编译配置,是有把Com_PBCfg_CodeGenerate.h这个头文件配置进去的。
如果库上的代码有问题,一起使用的同学肯定会发现,但是现在没发现,就肯定是只有我这里的问题。
在这里要交代一下,这个工程里面有两部分:协议栈代码和非协议栈代码。协议栈代码编译后会生成一个库,然后再用这个协议栈库跟非协议栈代码进行编译,才是一整个工程的输出文件。
问题分析
1、改变引用方式
文件Com_PbCfg.h和引用文件Com_PBCfg_CodeGenerate.h路径不同,改变include使用相对路径引用,仍然报错。
2、改变编译配置
将文件Com_PbCfg.h和引用文件Com_PBCfg_CodeGenerate.h配置到同一个jpg下,仍然报错。
3、重新打开IDE和电脑
也不行
4、对比差异。
让同学发我他拉下来的包,都拉到最新的节点,在我电脑能够编译成功。
然后对比路径分支有没有拉错代码,分支、节点都是一样的。
5、排除法缩小范围
对调协议栈代码编译
协议栈代码 | 非协议栈代码 | 编译结果 |
我 | 我 | NG |
同学 | 同学 | OK |
我 | 同学 | NG |
同学 | 我 | OK |
所以就知道,问题出在非协议栈代码里面。并不是报哪里的错,哪里就有问题。
6、玄学问题
确定了是非协议栈代码出的问题,那就对比我和同学的非协议栈代码,对比发现我的代码里面少了好几个文件。估计就是我拉的方法有问题,所以重新按照正确步骤拉非协议栈部分的代码。但是操作了好几遍,跟同学一起看着操作,拉下来的代码还是缺少几个文件的。
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!
这就是玄学问题了,无法靠人力解决,只能看天意了。烧香吧