[STM32L1] STM32CubeIDE 中的相对路径与绝对路径。

[复制链接]
313|10
梧桐uuu 发表于 2025-9-26 23:19 | 显示全部楼层 |阅读模式

正在开发一个涉及不同mcu和所谓“通用模块”的项目。

这些通用模块位于我们其他项目中,需要被链接到项目中。

虽然链接操作可以完成,但在编译项目时发现:如果包含路径是相对于项目文件的相对路径,则不会编译这些模块。只有当路径是绝对路径(例如 "C:\work\thiswork\module1...")时,编译才能成功。

由于项目需要在本地和远程服务器上编译,绝对路径对我们来说不可行。

请假是否有解决此问题的方案?

公羊子丹 发表于 2025-9-27 07:26 | 显示全部楼层
楼主你这个问题我也遇到过,用相对路径确实容易踩坑,CubeIDE 默认好像对 workspace 的引用比较挑剔。
周半梅 发表于 2025-9-27 07:27 | 显示全部楼层
你可以试试把模块放到 workspace 里,然后用 linked folder 的方式添加,路径就能保持相对了。
帛灿灿 发表于 2025-9-27 07:28 | 显示全部楼层
我记得在 Project → Properties → C/C++ General → Paths and Symbols 里,有个 “Relative to project” 的选项,你看下。
童雨竹 发表于 2025-9-27 07:29 | 显示全部楼层
如果是在多个电脑之间同步项目,最好用相对路径加环境变量结合,这样迁移比较稳妥。
万图 发表于 2025-9-27 07:31 | 显示全部楼层
我之前做法是建一个 “common” 工程,然后其他工程都 reference 这个,CubeIDE 会帮你处理 include path。
Wordsworth 发表于 2025-9-27 07:32 | 显示全部楼层
相对路径写法要注意,从 .c 文件相对还是从项目根目录相对,很多人搞混在这里。
Bblythe 发表于 2025-9-27 07:33 | 显示全部楼层
其实还有一种做法,把通用模块放到 git 子模块里,这样路径保持一致,迁移服务器也没问题。
Pulitzer 发表于 2025-9-27 07:34 | 显示全部楼层
有时候 CubeIDE 的 GUI 配置不靠谱,你可以直接去 .cproject 文件里改 include 路径,支持相对路径的。
Uriah 发表于 2025-9-27 07:35 | 显示全部楼层
绝对路径当然最省事,但像你说的换环境就麻烦了,所以还是得折腾下相对路径设置。
Clyde011 发表于 2025-9-27 07:36 | 显示全部楼层
要是实在搞不定,可以考虑写个 Makefile 包装,手动指定路径控制编译流程,比 IDE 配置更灵活。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

58

帖子

0

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