记录:keil开发中,出现变量未被定义情况..\User\main.c(67): error: #20: identifier “APM_DELAY_MS“ is undefined

原文中显此处报错(使用的极海单片机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是否定义错了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值