代码之家  ›  专栏  ›  技术社区  ›  fearless_fool

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

  •  0
  • fearless_fool  · 技术社区  · 6 年前

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

    (为了保护无辜,有些人改名了。)

    我查了.map文件 myfun() 不会出现在那里。知道为什么吗

    1 回复  |  直到 6 年前
        1
  •  1
  •   fearless_fool    6 年前

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

    // 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