我确实使用 Eclipse Photon (4.8.0) 设置了一个 C 项目,用于开发 ESP-32 的程序。我确实按照this official setup instructions配置了IDE .
刷写 ESP-32 效果很好。但是,一旦我尝试包含子文件夹中的头文件,我就会遇到麻烦。我建立了一个非常简单的项目来说明这个问题。该项目由 main.c
、base/test.h
和 base/test.c
组成,而 test.h
和 test.c
文件仅包含一个带有签名 void function1(void);
的函数。
当我尝试在 main.c
中调用 function1()
时,我在 main.c
中收到此错误:
Undefined reference to function1()
请与所附的屏幕截图进行比较,其中描述了所有内容。
如何解决这个问题?
最佳答案
这不是编译器错误,而是链接器错误。
注意,通过#include
头文件,您只能使编译器知道外部函数。您还需要在链接阶段链接到外部函数。确保将包含 function1
的已编译目标文件包含到链接中。
关于c - 如何解决Eclipse CDT中的 "Undefined reference to function"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53234543/