我在myAR Embedded Workbench项目中添加了一个新的mycode.c和mycode.h文件。文件编译时没有错误,但链接器失败并显示以下消息:
Error[Li005]: no definition for "myfun()" [referenced from C:\MyProj\Debug\Obj\main.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