首页 > 解决方案 > 如何解决 Eclipse CDT 中的“未定义的函数引用”?

问题描述

我确实使用 Eclipse Photon (4.8.0) 设置了一个 C 项目,用于为 ESP-32 开发程序。我确实根据这个官方设置说明配置了 IDE 。

闪烁 ESP-32 工作正常。但是,一旦我尝试包含子文件夹中的头文件,我就会遇到麻烦。我已经建立了一个非常简单的项目来说明这个问题。该项目由main.c,base/test.h和组成base/test.c,而test.handtest.c文件仅包含一个带有签名的函数void function1(void);

当我尝试打电话function1()main.c,我收到此错误main.c

对 function1() 的未定义引用

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

如何解决这个问题?

在此处输入图像描述

标签: ceclipseembeddedeclipse-cdt

解决方案


似乎您需要进行正确的链接

  1. 如果要与库链接,则需要指定:
  • 图书馆名称:Project\Settings\C C++ General\Paths and Symbols\Libraries
  • 链接器应搜索此库的位置: Project\Settings\C C++ General\Paths and Symbols\Library Paths
    重要:请参阅注释。
  1. 如果您正在链接目标文件,请将它们添加到:
  • Project\Settings\C C++ Build\Settings\Linker\Miscellaneous\Other objects

注意

  • 例如,如果您的库名称是 ,libsomething.a那么您只需指定something名称即可;所以省略lib前缀和.a后缀
  • 如果您的库没有前缀lib,那么您需要添加其名称前缀:。例如,something.a应添加为:something.a.

推荐阅读