IAR Workbench:“HAL_SPI_Init”错误没有定义

Posted

技术标签:

【中文标题】IAR Workbench:“HAL_SPI_Init”错误没有定义【英文标题】:IAR Workbench: No Definition for "HAL_SPI_Init" error 【发布时间】:2021-01-08 08:45:08 【问题描述】:

我正在使用 IAR Workbench 来编译我的代码,

即使我在我的项目中的文件夹和对象中添加了所有 Stm32 Hal 库和对象>处理器

我收到此错误:

  [ErrorLi005]:  no definition for "HAL_SPI_Init" [referenced from C:\Users\Desktop\Project\EWARM\Project\Obj\api_lib.o
   [ErrorLi005]: no definition for "HAL_I2C_Init" [referenced from C:\Users\Desktop\Project\EWARM\Project\Obj\api_lib.o
   [ErrorLi005]:  no definition for "HAL_USART_Init" [referenced from C:\Users\Desktop\Project\EWARM\Project\Obj\api_lib.o
  [ErrorLi005]:  no definition for "HAL_ETH_Init" [referenced from C:\Users\Desktop\Project\EWARM\Project\Obj\api_lib.o
    ...
    Linking error

我该如何解决这个错误?

【问题讨论】:

【参考方案1】:

您没有告诉链接器使用库文件,因此它无法找到您在目标文件中使用的匹配符号。

假设您的库已经编译(.a.lib 文件),请转到 Project > Options...> Category: Linker > Library 并将您的库文件添加到 其他库框。

【讨论】:

我添加了 libraires 它解决了这个问题,但我现在有另一个问题;我得到 Msp_Init 函数已经在另一个翻译单元 errr 中定义,但我在源文件中只有一个 hal_msp.c 文件。 意思是我有一个 hal_msp.c 文件,这个文件包含 Msp_Init 函数 @gogogo 不幸的是,我无法根据该描述确定问题。既然你有新问题,那么请提出全新的问题。

以上是关于IAR Workbench:“HAL_SPI_Init”错误没有定义的主要内容,如果未能解决你的问题,请参考以下文章

在 IAR Workbench 上加载闪存加载程序失败

IAR Embedded Workbench:为什么我会收到链接器错误[Li005]?

IAR Embedded Workbench for ARM 8.22.1 基础使用教程

IAR Workbench:“HAL_SPI_Init”错误没有定义

有人为 MSP430 的 IAR Embedded Workbench 实现了 __getzone() 吗?

IAR疑难杂症拟解决方法 -- IAR同传后许可证失效