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

Linker IAR Embedded Workbench:为什么我收到链接器错误[Li005]?,linker,iar,Linker,Iar,我在IAR嵌入式工作台项目中添加了一个新的mycode.c和mycode.h文件。文件编译无误,但链接器失败,并显示以下消息: Error[Li005]: no definition for "myfun()" [referenced from C:\MyProj\Debug\Obj\main.o] (为了保护无辜,一些名字被改了。) 我检查了.map文件,但是myfun()没有出现在那里。任何想法为什么 MyFunUnter(代码>没有链接? 你的项目是否有可能是一个混合C/C++项目?如

我在IAR嵌入式工作台项目中添加了一个新的mycode.c和mycode.h文件。文件编译无误,但链接器失败,并显示以下消息:

Error[Li005]: no definition for "myfun()" [referenced from C:\MyProj\Debug\Obj\main.o] 
(为了保护无辜,一些名字被改了。)


我检查了.map文件,但是
myfun()
没有出现在那里。任何想法为什么<代码> MyFunUnter(<)>代码>没有链接?

你的项目是否有可能是一个混合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