贫道5 发表于 2018-3-14 14:20:51

自己新建工程keil5编译hal库无法生成STM32L0xx_hal_rcc_exe.o文件

自己在keil5上新建工程,用的是STM32L053R8单片机,编译之后报错,我找了很久才发现是无法生成STM32L0xx_hal_rcc_exe.o文件,别的库函数的.o文件都能正常生成,求解释,求解决。。。。。

Mandelbrot_Set 发表于 2018-3-14 17:58:44

贫道5 发表于 2018-3-14 17:48
十分感谢,确实是这样,问题已解决,能给说一下,这是什么情况么,谢谢。。。。。 ...
C89 要求FlagStatuspwrclkchanged = RESET; 放在代码块开头

例如
void f()
{
int a;
a=a;
int b;
b++;
}
会报错。。。
详情baidu mdk c99

Mandelbrot_Set 发表于 2018-3-14 16:58:39

贫道5 发表于 2018-3-14 15:13
已下载了官方的库,工程里面也已经添加进去了,现在是有stm32l0xx_hal_rcc_ex.c文件,但是就是编译的时候 ...

从error看,感觉须要 C/C++选项须要 --c99

wenyangzeng 发表于 2018-3-14 14:46:29

本帖最后由 wenyangzeng 于 2018-3-14 14:47 编辑

MDK本身不带HAL库,需要加载STM32Cube_FW_F0_v1.xx库

到ST官方网站下载一个。



贫道5 发表于 2018-3-14 14:53:06

wenyangzeng 发表于 2018-3-14 14:46
MDK本身不带HAL库,需要加载STM32Cube_FW_F0_v1.xx库

到ST官方网站下载一个。


已经下载了官方的库,D:\无标题

贫道5 发表于 2018-3-14 14:56:39

贫道5 发表于 2018-3-14 14:53
已经下载了官方的库,

已下载了官方的库,工程里面也已经添加进去了,现在是有stm32l0xx_hal_rcc_ex.c文件,但是就是编译的时候,报错,..\Drivers\STM32L0xx_HAL_Driver\Src\stm32l0xx_hal_rcc_ex.c(148): error:#268: declaration may not appear after executable statement in block
      FlagStatus       pwrclkchanged = RESET;
库文件是原封不动添加的,不会出问题,所以我看了一下工程的文件夹里缺少stm32l0xx_hal_rcc_ex.o文件,我从例程里面拷贝过来在编译就没问题了

贫道5 发表于 2018-3-14 15:13:33

wenyangzeng 发表于 2018-3-14 14:46
MDK本身不带HAL库,需要加载STM32Cube_FW_F0_v1.xx库

到ST官方网站下载一个。


已下载了官方的库,工程里面也已经添加进去了,现在是有stm32l0xx_hal_rcc_ex.c文件,但是就是编译的时候,报错,..\Drivers\STM32L0xx_HAL_Driver\Src\stm32l0xx_hal_rcc_ex.c(148): error:#268: declaration may not appear after executable statement in block
      FlagStatus       pwrclkchanged = RESET;
库文件是原封不动添加的,不会出问题,所以我看了一下工程的文件夹里缺少stm32l0xx_hal_rcc_ex.o文件,我从例程里面拷贝过来在编译就没问题了

wenyangzeng 发表于 2018-3-14 15:19:59

本帖最后由 wenyangzeng 于 2018-3-14 15:24 编辑

贫道5 发表于 2018-3-14 15:13
已下载了官方的库,工程里面也已经添加进去了,现在是有stm32l0xx_hal_rcc_ex.c文件,但是就是编译的时候 ...
declaration may not appear after executable statement in block
编译错误的提示是:“声明不能出现在可执行语句块后”。并非RCC文件出错,检查一下代码。
stm32l0xx_hal_rcc_ex.o并非指stm32l0xx_hal_rcc.c文件,而是编译后XXX.o文件。

贫道5 发表于 2018-3-14 15:41:25

wenyangzeng 发表于 2018-3-14 15:19
declaration may not appear after executable statement in block
编译错误的提示是:“声明不能出现在可 ...

发遍的话,留个邮箱,我把新建的工程发给你,帮忙给看看可好

wenyangzeng 发表于 2018-3-14 15:44:05

本帖最后由 wenyangzeng 于 2018-3-14 15:47 编辑

贫道5 发表于 2018-3-14 15:41
发遍的话,留个邮箱,我把新建的工程发给你,帮忙给看看可好
楼主可以以附件形式发在贴子了,大家共同讨论
其实STM32Cube_Fw库有一个样板工程,你直接在工程里添加代码不是很方便吗?免去那些没有必要的纠错过程。

贫道5 发表于 2018-3-14 15:48:22

wenyangzeng 发表于 2018-3-14 15:44
楼主可以以附件形式发在贴子了,大家共同讨论
其实STM32Cube_Fw库有一个样板工程,你直接在工程里添加代码 ...

工程文件比较大,以附件的形式没法上传,我知道cube这个软件,也在用,但是自己新建工程我要是过不去,会非常不舒服。。。。。

toofree 发表于 2018-3-14 16:01:32

贫道5 发表于 2018-3-14 15:48
工程文件比较大,以附件的形式没法上传,我知道cube这个软件,也在用,但是自己新建工程我要是过不去,会 ...

有啥不舒服的。
我用了Keil十多年了,都不轻易建工程。都是拿模板里添加点文件、删除点文件,改改设置,改改代码。

你不用传工程,把生成的.ioc文件传上来就可以了。
页: [1] 2
查看完整版本: 自己新建工程keil5编译hal库无法生成STM32L0xx_hal_rcc_exe.o文件