【问题标题】:IAR Embedded Workbench: Why am I getting linker Error [Li005]?IAR Embedded Workbench:为什么会出现链接器错误 [Li005]?
【发布时间】:2019-02-17 13:24:06
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: linker iar


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      • 2013-06-21
      • 2013-10-20
      • 1970-01-01
      • 2014-06-25
      • 2021-01-10
      • 2015-09-29
      相关资源
      最近更新 更多