IAR Embedded Workbench:为什么会出现链接器错误[Li005]?

时间:2018-09-12 20:31:06

标签: linker iar

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

Error[Li005]: no definition for "myfun()" [referenced from C:\MyProj\Debug\Obj\main.o] 

(为了保护无辜者,有些名称已更改。)

我检查了.map文件,但myfun()没有出现在其中。知道为什么myfun()无法链接吗?

1 个答案:

答案 0 :(得分:1)

您的项目是否有可能是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