我正在使用 Linux,我有以下文件:
main.c, main.h
fileA.c, fileA.h
fileB.cpp, fileB.h
该函数F1()
在 中声明fileB.h
和定义fileB.cpp
。我需要在 中使用该函数fileA.c
,因此我将该函数声明为
extern void F1();
在fileA.c
.
但是,在编译过程中,我得到了错误
fileA.c: (.text+0x2b7): undefined reference to `F1'
怎么了?
谢谢你。
ETA:多亏了我收到的答案,我现在有了以下信息:
在fileA.h中,我有
#include fileB.h
#include main.h
#ifdef __cplusplus
extern "C"
#endif
void F1();
在fileA.c中,我有
#include fileA.h
在fileB.h中,我有
extern "C" void F1();
在fileB.cpp中,我有
#include "fileB.h"
extern "C" void F1()
{ }
但是,我现在有错误
fileB.h: error: expected identifier or '(' before string constant