IAR Embedded Workbench: почему я получаю сообщение об ошибке компоновщика [Li005]? - PullRequest
0 голосов
/ 12 сентября 2018

Я добавил новый файл mycode.c и mycode.h в мой проект IAR Embedded Workbench.Файлы компилируются без ошибок, но компоновщик завершается ошибкой с сообщением:

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

(некоторые имена изменены для защиты невинных.)

Я проверил файл .map и myfun()там не появляется.Есть идеи, почему myfun() не связывается?

1 Ответ

0 голосов
/ 12 сентября 2018

Есть ли вероятность того, что ваш проект является смешанным 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
...