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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IAR Embedded Workbench:为什么我会收到链接器错误[Li005]?相关的知识,希望对你有一定的参考价值。

我在myAR Embedded Workbench项目中添加了一个新的mycode.c和mycode.h文件。文件编译时没有错误,但链接器失败并显示以下消息:

Error[Li005]: no definition for "myfun()" [referenced from C:MyProjDebugObjmain.o] 

(有些名字改为保护无辜者。)

我检查了.map文件,myfun()没有出现在那里。知道为什么myfun()没有被链接?

答案

您的项目是否有可能是混合的C / C ++项目?如果是这样,您需要在.h文件中包含以下extern "C" { ... }构造(明显的名称更改...):

// file: mycode.h
#ifndef MYCODE_H
#define MYCODE_H

#ifdef __cplusplus
extern "C" {
#endif

// your declarations go here...
void myfun();

#ifdef __cplusplus
}
#endif

#endif // #ifndef MYCODE_H

以上是关于IAR Embedded Workbench:为什么我会收到链接器错误[Li005]?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 IAR Embedded Workbench 中合并两个版本的代码

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

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

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

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

在IAR(EWARM)中移植STM32固件库