[其他ST产品] 指定的包含目录未包含在生成的 C 编译命令行中

[复制链接]
454|9
jerry尧 发表于 2025-9-25 23:05 | 显示全部楼层 |阅读模式
生成的 C 编译命令行缺少除第一个指定包含目录外的所有目录。

问题描述:这是我输入包含目录的位置(使用了工作空间路径指向项目中可见的目录):
8060568d559dda9e60.png 8354368d559f2cac51.png
在编译器设置中这些目录正确显示:
5253268d559e968578.png
但是,生成的命令行仅包含列出的第一个包含目录:


编译时情况相同,这是第一条构建命令:
arm-none-eabi-gcc "C:/git/AA/ATD57/src/Tests/BaroCalib/ADBaroCalib.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DSTM32F4XX -DSTM32F40XX -DUSE_STDPERIPH_DRIVER -DBA_BL_2_X -DBA_STANDALONE_APPLICATION -DBA_DEVICE_AD57 -DSTM32_UART1_DMA -DSTM32_UART3_DMA -DDEBUG -c -I"C:/git/AA/ATD57/CubeMX_Project/src" -Ofast -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"src/Tests/BaroCalib/ADBaroCalib.d" -MT"src/Tests/BaroCalib/ADBaroCalib.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "src/Tests/BaroCalib/ADBaroCalib.o"
在使用链接资源的项目中,无法在 C 包含目录条目中使用项目中的链接资源路径。因此我为包含目录创建了工作空间路径(这些路径又依赖于项目链接)。项目中的所有文件都可见且可访问——只是无法获得正确的构建命令行。

请问这是什么原因造成的?




内政奇才 发表于 2025-9-26 15:47 | 显示全部楼层
可能路径格式问题
海滨消消 发表于 2025-9-26 16:47 | 显示全部楼层
STM32CubeIDE 的 编译器选项可能未正确传递所有包含路径。
豌豆爹 发表于 2025-9-26 19:48 | 显示全部楼层
IDE 的缓存或索引可能未更新,导致生成的编译命令不完整。
麻花油条 发表于 2025-9-26 18:49 | 显示全部楼层
检查路径格式,所有包含路径使用 绝对路径 或 正确的相对路径,避免使用 ${workspace_loc} 或链接资源路径。
classroom 发表于 2025-9-26 20:50 | 显示全部楼层
清理并重建项目
cr315 发表于 2025-9-26 21:50 | 显示全部楼层
某些版本的 STM32CubeIDE 可能存在路径解析问题。
duo点 发表于 2025-9-26 22:51 | 显示全部楼层
用 -I 选项直接指定路径。
flycamelaaa 发表于 2025-9-26 21:52 | 显示全部楼层
STM32CubeIDE 在处理链接资源或工作空间变量 时,可能无法正确解析所有路径,导致生成的编译命令仅包含第一个 -I 选项。
jcky001 发表于 2025-9-26 16:33 | 显示全部楼层
升级 STM32CubeIDE。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

82

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部