Treasure101 发表于 2025-8-25 03:50

在将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++)。

我希望有一个正确的方法,而不是通过到处复制头文件来逐个修复错误!

公羊子丹 发表于 2025-8-25 07:16

你这个问题本质上是 CubeIDE 的自动路径配置丢了,建议直接用 CubeMX 重新生成项目再移植代码。

周半梅 发表于 2025-8-25 07:17

手动建 Includes 文件夹其实没必要,IDE里的路径都是通过 project settings 里配置的。

帛灿灿 发表于 2025-8-25 07:18

在 Project → Properties → C/C++ General → Paths and Symbols 里,把缺的路径补进去就行。

童雨竹 发表于 2025-8-25 07:19

千万别复制 HAL 或 CMSIS 头文件,保持原始目录结构,升级库时才不会乱。

万图 发表于 2025-8-25 07:20

你说的符号链接冲突,是因为 Eclipse 工程里本身就是虚拟链接,不是物理文件夹。

Wordsworth 发表于 2025-8-25 07:21

如果要从 C 改成 C++ 工程,可以新建 STM32 项目选 C++,再把源码导入,这样自动配置会保留。

Bblythe 发表于 2025-8-25 07:21

我常用的办法就是生成一个空的 STM32 工程,确认路径都在,然后直接把旧工程源码拷进来。

Pulitzer 发表于 2025-8-25 07:22

注意 G4 系列 HAL 的路径和 F1 不一样,你复制时要对照具体芯片的目录。

Uriah 发表于 2025-8-25 07:23

有些人会在 .cproject 文件里手动改 include 路径,但这种方法不太推荐,容易错。

Clyde011 发表于 2025-8-25 07:25

最保险的还是让 CubeIDE 自动生成结构,别自己硬建 Includes,否则后面维护很痛苦

内政奇才 发表于 2025-8-25 15:38

估计是包含路径 未正确配置。

duo点 发表于 2025-8-25 15:39

检查并配置头文件包含路径。

onlycook 发表于 2025-8-25 15:39

清理并重建项目。

duo点 发表于 2025-8-25 15:39

如果使用 VS Code 或其他编辑器,检查 .vscode/c_cpp_properties.json 中的 includePath 是否正确。
页: [1]
查看完整版本: 在将STM32项目复制到新的C/C++托管构建项目时,遇到了头文件位置错误