IAR错误[Li005]:即使在项目中添加了文件且文件的路径在预处理程序路径中,也没有函数定义

问题描述 投票:0回答:1

我有一个奇怪的问题。我正在尝试将Nordic Semiconductors外设示例中的spi模块与Central BLE Uart项目集成在一起。

[所有示例都有一个通用的组件库。因此,我要做的就是将spi_slave文件nrf_drv_spis.c添加到我的项目中,并在项目的预处理器路径中将该组件的路径添加到了该文件中。

$PROJ_DIR$\..\..\..\..\..\..\..\components\drivers\nrf_spi_slave在我的预处理程序路径中,这是nrf_drv_spis.c

nrf_drv_spis.h的位置。

但是,当我编译代码时,出现此错误

Error[Li005]: no definition for "nrf_drv_spis_init" [referenced from D:\Repo\ble_projects\nRF5_SDK_12.3.0\examples\ble_central\ble_app_uart_c\pca10028\s130\iar\_build\main.o] 

nrf_drv_spis_init是在nrf_drv_spis.c

中找到的函数,原型在nrf_drv_spis.h中。同样奇怪的是,当我右键单击nrf_drv_spis_init并“转到定义”时,它总是将我带到头文件中的原型。通常,IAR为我提供函数的原型或定义,并且我需要单击声明或原型。

所以它确实告诉我,无论出于什么原因,文件nrf_drv_spis.c

似乎都没有出现在项目中,但是我不知道该怎么做。

任何帮助将不胜感激。谢谢。

我有一个奇怪的问题。我正在尝试将Nordic Semiconductors外设示例中的spi模块与Central BLE Uart项目集成在一起。有一个通用的组件库...

linker-errors nrf51
1个回答
0
投票

所以这里的问题是,我错过了另一个关键的头文件中的某些定义,它们位于#ifdef之后,因此在编译代码时,没有包括正确的文件。

© www.soinside.com 2019 - 2024. All rights reserved.