原文中显此处报错(使用的极海单片机APM32F003)一个简单的GPIO翻转程序
一般未定义的情况下,是没办法跳转的,但是我确实是包含了头文件路径的情况下,不应该出现该问题。
①中间发现没有把延时函数的.c文件包含到工程中(bsp_delay.c)
②但是官方给的工程案例文件中也没有包含该.c文件(bsp_delay.c)
然后我又去看来头文件包含路径,头文件包含路径也是一致的
最后发现在魔术棒里面的C/C++的Preprocessor Symbols定义错了
下图为官方(BOARD_APM32F003_MINI)
这里:添加define的文件,APM32F103_MINI要与Broad.c中的define名称对应
最后:更改为BOARD_APM32F003_MINI后,报错消失
上述问题解决后再编译时,出现下面错误:
.\Objects\APM32f003f6p6_oled.axf: Error: L6218E: Undefined symbol APM_Delay (referred from main.o).
一般是.C文件未导入工程中,可以导入.C文件。但是官方案例中未有导入
我这边是将它的启动文件包含到 魔术棒的C/C++的Preprocessor Symbols中
问题解决;
但是编译后,发现再把APM32F00x去掉,重编译也不会再出现该问题
总结:当出现报错:error: #20: identifier "变量" is undefined
warning: #223-D: function "函数" declared implicitly
的情况。
①检查 函数 出现文件中 头文件包含,或者 变量 是否 extern 引用
②查看头文件包含路径是否未包含(也可查看.C文件是否导入工程中)
③查看魔术棒C/C++中Preprocessor Symbols是否定义错了