将 CubeMx 项目导入 VisualGDB 时出现引用错误

Reference errors when importing CubeMx project into VisualGDB

我在将新的 cubeMX 项目导入 VisualGDB 时遇到了一些问题。我收到大量错误信息: undefined reference to 'vPortFree'(举例)

采取的步骤:

  1. 使用“其他工具链”在 CubeMX 中生成项目文件
  2. 然后在 VS 中,使用嵌入式 Visual GDB 创建项目,主要遵循默认步骤。我完全遵循这个过程。 https://www.youtube.com/watch?v=XY4I0Nq6IGc

项目创建后,我尝试构建它,但出现以下错误:

Severity Description                                            Project                          File                                                                                                                               Line
Error    undefined reference to `vPortFree'                     stm32nucleof429zi_freertos_tcpip C:\Repos\stm32nucleof429zi_freertos_tcpip.git\stm32nucleof429zi_freertos_tcpip.git\Middlewares\Third_Party\FreeRTOS\Source\tasks.c 3920
Error    undefined reference to `vPortFree'                     stm32nucleof429zi_freertos_tcpip C:\Repos\stm32nucleof429zi_freertos_tcpip.git\stm32nucleof429zi_freertos_tcpip.git\Middlewares\Third_Party\FreeRTOS\Source\tasks.c 3921
Error    undefined reference to `vPortFree'                     stm32nucleof429zi_freertos_tcpip C:\Repos\stm32nucleof429zi_freertos_tcpip.git\stm32nucleof429zi_freertos_tcpip.git\Middlewares\Third_Party\FreeRTOS\Source\tasks.c 3927
Error    Build failed: arm-none-eabi-g++.exe exited with code 1 stm32nucleof429zi_freertos_tcpip                                                                                                                                    1   
Error    ld returned 1 exit status                              stm32nucleof429zi_freertos_tcpip C:\Repos\stm32nucleof429zi_freertos_tcpip.git\stm32nucleof429zi_freertos_tcpip.git\collect2.exe                                    0   

然而,当我右键单击 main.c 并编译时,项目编译没有错误。使用构建工具和调试器时会出现这些错误。

以前导入项目的时候从来没有遇到过这个问题。任何帮助将不胜感激 谢谢

在配置了一段时间后,我发现了问题。 CubeMx 创建的工具链文件没有告诉链接器包含 FreeRTOS 编译所需的所有文件。

此问题仅在您使用 CMSIS_RTOS_V2 且以下步骤为我修复时才相关:

将 CMSIS_RTOS_V2 添加到项目 space,方法是: 添加缺少的包括:

  • 转到:项目->VisualGDP 项目属性->MS 构建设置->包含目录并将文件夹 CMSIS_RTOS_V2 添加到文件路径

解决未识别引用“pvPortMalloc”错误: