identifier “e_nodeState“is undefined的解决方法

在移植程序的时候,遇到报错,这个问题的感觉很简单的那种
compiling dcf.c…\CanFestival\inc\data.h(89): error: #20: identifier “initialisation_t” is undefined initialisation_t initialisation;.\CanFestival\inc\data.h(90): error: #20: identifier “preOperational_t” is undefined preOperational_t preOperational;.\CanFestival\inc\data.h(91): error: #20: identifier “operational_t” is undefined operational_t operational;.\CanFestival\inc\data.h(92): error: #20: identifier “stopped_t” is undefined stopped_t stopped;CanFestival\src\dcf.c: 0 warnings, 4 errorscompiling MySlave.c…\CanFestival\inc\data.h(89): error: #20: identifier “initialisation_t” is undefined
说的是某变量没有定义:identifier "e_nodeState"is undefined
但其实这个标识符是已经定义的。添加定义标识符的头文件,“states .h”,但是依然报错。
网上找到的第一个比较靠谱的回答是这个:
https://blog.csdn.net/david_xtd/article/details/88569871
这个博主说将头文件粘贴到编译的源文件里,但是,我试了之后,依然有问题。这个过程中,我试过包括重新修改文件路径,修改路文件包含等等。
然后我找到了第二篇文章,很有用。https://blog.csdn.net/wuyuzun/article/details/97803640?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control
这位博主说,keil 5环境下头文件引用出现了交叉,就是说把所有头文件放在一个头文件里,然后进行引用,但是这样会导致子头文件在申明时,这个变量就已经存在总头文件中了,就出现了头文件引用错误。
我找了一下,果然如此。我遇到的问题比博主的那个更复杂一点,但是这微博主已经解释得很清楚了,我就不再解释了。然后我遇到的函数原型是这样的几个:
identifier “e_nodeState“is undefined的解决方法_第1张图片identifier “e_nodeState“is undefined的解决方法_第2张图片identifier “e_nodeState“is undefined的解决方法_第3张图片仔细看看之后,就发现,这三个文件之间的引用和第二位博主说的问题基本一致,所以修改一下,就行啦~

你可能感兴趣的:(笔记)