[STM32F0] STM32CubeIDE 在工作空间中包含其他项目的 src 源文件

[复制链接]
480|10
 楼主| Hitomi22 发表于 2025-7-19 15:05 | 显示全部楼层 |阅读模式
在CubeIDE中创建了一个项目(program-project)。后来我决定在另一个项目(testing-project)中为此项目编写一些测试。现在我希望在创建testing-project时,它能直接使用program-project中的源文件。这样两个项目就可以共用同一套源代码。
我在testing-project中通过以下方式包含了program-project的头文件:
"${workspace_loc:/program-project/inc}"
这样就能找到头文件了。
但当我编译时,出现了函数引用未定义的错误。

公羊子丹 发表于 2025-7-23 07:24 | 显示全部楼层
头文件找得到只是编译时包含了声明,真正的 .c 文件还得一起加进 build 才行哈。
周半梅 发表于 2025-7-23 07:26 | 显示全部楼层
你可以在 testing-project 的属性里,把 program-project 的 src 也加到编译路径里。
帛灿灿 发表于 2025-7-23 07:28 | 显示全部楼层
我以前是直接在 testing-project 的 source folders 里新建一个链接到 program-project/src 的链接文件夹。
童雨竹 发表于 2025-7-23 07:30 | 显示全部楼层
你编译时有没有看到编译器命令里包含 program-project 的 .c?要没有就肯定找不到符号。
万图 发表于 2025-7-23 07:32 | 显示全部楼层
有时候直接引用别的项目的 src 会有依赖冲突,注意 .c 文件里不要重复定义全局变量。
Wordsworth 发表于 2025-7-23 07:34 | 显示全部楼层
也可以考虑把共享的部分做成静态库,让 testing-project 链接进来更清晰。
Bblythe 发表于 2025-7-23 07:36 | 显示全部楼层
如果只是单元测试,很多人会用 CMock 或 Ceedling,把源文件放到 mock 里单独编译。
Pulitzer 发表于 2025-7-23 07:38 | 显示全部楼层
CubeIDE 的 linked folder 功能其实挺好用,就是路径别写错,不然会找不到源文件。
Uriah 发表于 2025-7-23 07:40 | 显示全部楼层
记得编译器选项里 include path 和 source path 是两回事,得都加对才行。
Uriah 发表于 2025-7-23 07:42 | 显示全部楼层
实在搞不定就用外部 Makefile,把两个项目的 src 都列进去,这样依赖最清楚。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

60

帖子

0

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