c - 如何解决Eclipse CDT中的 "Undefined reference to function"?

标签 c eclipse embedded eclipse-cdt

我确实使用 Eclipse Photon (4.8.0) 设置了一个 C 项目,用于开发 ESP-32 的程序。我确实按照this official setup instructions配置了IDE .

刷写 ESP-32 效果很好。但是,一旦我尝试包含子文件夹中的头文件,我就会遇到麻烦。我建立了一个非常简单的项目来说明这个问题。该项目由 main.cbase/test.hbase/test.c 组成,而 test.htest.c 文件仅包含一个带有签名 void function1(void); 的函数。

当我尝试在 main.c 中调用 function1() 时,我在 main.c 中收到此错误:

Undefined reference to function1()

请与所附的屏幕截图进行比较,其中描述了所有内容。

如何解决这个问题?

enter image description here

最佳答案

这不是编译器错误,而是链接器错误。

注意,通过#include头文件,您只能使编译器知道外部函数。您还需要在链接阶段链接到外部函数。确保将包含 function1 的已编译目标文件包含到链接中。

关于c - 如何解决Eclipse CDT中的 "Undefined reference to function"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53234543/

相关文章:

java - 没有从eclipse java中的mysql中选择数据库

embedded - system() 返回错误值

c - 使用 AVR 红外传感器发光 LED 的这段代码有什么问题?

C - 尝试使用 scanf/getchar 从 stdin 读取单个字符(失败)

c - 如何用按钮填充 gtk 网格?

eclipse - 计算断点命中

java - 使用jumphost进行Eclipse远程调试

c - 如何在 C 中将端口设置为按钮的输入?

c - 使用可变长度数组安全吗?

c - 如何获取退出库函数的地址并将其分配给全局变量?