我正在使用带有ARM插件的Eclipse IDE在我的F4-Discovery上开发项目。我创建了一个空模板项目并开始使用stm32 HAL库中的函数,我得到了如下错误:
对“HAL_DMA_Init”的未定义引用
对“HAL_UART_Init”的未定义引用
必要的.c和.h文件位于正确的目录中,但Eclipse只识别了一半的.c文件,其他文件被删除了。 This image explains my problem.出了什么问题?感谢。
答案 0 :(得分:3)
您需要添加Eclipse CDT的包含路径。假设这是一个托管版本(而不是使用外部Makefile),您需要按照here的说明进行操作。
在托管构建系统中添加包含路径和符号
对于CDT项目,您可以定义包含路径和预处理器 解析器的符号。这使解析器可以理解内容 的C / C ++源代码,以便您可以更有效地使用 搜索和代码完成功能。
如果启用了自动发现,则在构建完成后,会发现任何已发现的内容 路径和符号将显示在“发现的路径”部分中。 您还可以在C / C ++中基于每个项目定义属性 项目或导航器视图。
添加包含路径和符号:
要设置项目的属性,请右键单击CDT项目,然后选择“属性”。或者,设置特定的属性 在项目中的源文件,右键单击您的项目中的源文件 制作项目并选择属性。
展开C / C ++ General并选择路径和符号。
点击此处查看插图(显示在单独的窗口中)。
单击“添加”以定义新元素(包括路径,符号,库路径等)。
- 单击“编辑”以更改所选元素(包括路径,符号,库路径等)。
- 单击“删除”以删除所选元素(包括路径,符号,库路径等)。
- 单击“导出”以导出所选元素(包括路径,符号,库路径等)。
- 单击Unexport从导出列表中删除所选元素(包括路径,符号,库路径等)。
- 单击上移和下移以设置元素(包括路径,库路径等)顺序。
醇>
答案 1 :(得分:0)
在您需要的文件的属性(Alt + Enter)中,勾选“从构建中排除资源”复选框。 as shown in this link
答案 2 :(得分:0)
“未定义的引用”可能是链接器错误。您没有在编译要使用的库的实际源代码。
转到system > src > stm32f4-hal
,然后右键单击要包含的库文件。取消选中“从构建中排除”。