在将STM32项目复制到新的C/C++托管构建项目时,遇到了头文件位置错误
不知道如何复制主{project} Includes"目录"下自动生成的项目链接。该项目有自动生成的插件包含"链接",但我缺少以下内容:{project}/Core/Inc
{project}/Drivers/CMSIS/Device/ST/STM32G4xx/Include
{project}/Drivers/CMSIS/Include
{project}/Drivers/STM32G4xx_HAL_Driver/Inc
{project}/Drivers/STM32G4xx_HAL_Driver/Inc/Legacy
如果直接创建一个真实的{project}/Includes目录并添加符号链接,会与已存在的自动生成的插件链接冲突。
另一个方案是使用STM32向导自动生成新项目,然后在C++构建设置配置中重新添加C++工具(启用g++)。
我希望有一个正确的方法,而不是通过到处复制头文件来逐个修复错误!
你这个问题本质上是 CubeIDE 的自动路径配置丢了,建议直接用 CubeMX 重新生成项目再移植代码。 手动建 Includes 文件夹其实没必要,IDE里的路径都是通过 project settings 里配置的。 在 Project → Properties → C/C++ General → Paths and Symbols 里,把缺的路径补进去就行。 千万别复制 HAL 或 CMSIS 头文件,保持原始目录结构,升级库时才不会乱。 你说的符号链接冲突,是因为 Eclipse 工程里本身就是虚拟链接,不是物理文件夹。 如果要从 C 改成 C++ 工程,可以新建 STM32 项目选 C++,再把源码导入,这样自动配置会保留。 我常用的办法就是生成一个空的 STM32 工程,确认路径都在,然后直接把旧工程源码拷进来。 注意 G4 系列 HAL 的路径和 F1 不一样,你复制时要对照具体芯片的目录。 有些人会在 .cproject 文件里手动改 include 路径,但这种方法不太推荐,容易错。 最保险的还是让 CubeIDE 自动生成结构,别自己硬建 Includes,否则后面维护很痛苦 估计是包含路径 未正确配置。 检查并配置头文件包含路径。 清理并重建项目。 如果使用 VS Code 或其他编辑器,检查 .vscode/c_cpp_properties.json 中的 includePath 是否正确。
页:
[1]