刚刚在我的 C++ ARM Cross GCC项目中遇到了同样的问题。我正在 Windows 上开发,使用 Makefile 和带有 GNU ARM Embedded Toolchain 的 Ubuntu Docker 映像来构建项目。
就我而言,摆脱未解析符号的解决方案可以分为两部分:
- CDT Arm Cross GCC 内置编译器设置没有编译器的路径。
Project Properties -> C/C++ General -> Preprocessor Include Paths -> Providers(tab)
必须在编译器路径中提供。
使用GNU ARM Embedded Toolchain ,获取编译器规格的命令条目: 我目前使用的是:
C:\GNU_Arm_Embedded_Toolchain\9-2020-q2-update\bin\arm-none-eabi-g++.exe ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD "${INPUTS}"
注意:是的,我在 Windows 机器上安装了与在 Docker 映像中使用的工具链相同的工具链。
要验证调用是否正确,您可以在控制台视图中勾选分配控制台,这将为控制台提供有用的输出。此外,在Entries选项卡中,当您展开CDT Arm Cross GCC 内置编译器设置时,您应该会看到包含的包含和符号。
Project Properties -> C/C++ General -> Paths and Symbols
菜单中缺少符号。
因为我在 Makefile 中有我的定义,所以我忘了在这里也添加我的 MCU 的定义。
希望这对某人有帮助!:)