如何在STM32CubeIDE中像Arduino IDE那样添加自定义全局库?
在使用Arduino IDE时,添加一个库是一次性的流程(例如,添加一个.zip文件)。之后,我可以在任何新项目中简单地添加#include "lcdlib.h" 并立即开始使用其函数,而无需任何额外配置。
然而,我还没有找到一个同样简单、全局的STM32CubeIDE解决方案。当前,对于每个新项目,我必须做两件麻烦的事情之一:
- 手动将我的库的头文件 (.h) 和源文件 (.c) 复制到该项目的Core/Inc和 Core/Src文件夹中。
- 使用“链接文件夹”方法,但这仍然需要对每个项目进行手动配置(在Properties → C/C++ General → Paths and Symbols → Includes中添加包含路径,并链接源文件夹,使编译器能够找到.c文件)。
由于我在许多不同的STM32项目中使用相同的自定义库,每次重复这些步骤都让我感到沮丧。
有没有办法将STM32CubeIDE(或Eclipse CDT)配置为拥有一个“全局库”目录?我的目标是在任何新项目的main.c中简单地包含头文件 (#include "mylib.h"),让IDE自动解析包含路径并编译相关的源文件,就像Arduino IDE那样。
解决方案
你的 Lib(mylib 或你想要使用的名字)不需要在项目目录中,因此在你的工作区创建 Lib,它位于项目目录的上一级。这将成为你所有自定义的custom.h和 custom.c库所在的位置。
STM32CubeIDE
|__workspace
|__Lib
|__Template
|__Project1
. . .
|__Projectn
为 Lib 配置路径,请进入 Your_Project -> Properties → C/C++ General -> Path and Symbols,点击 Includes,再点击 Add,为GNU C添加以下路径
${WorkspaceDirPath}/Lib
点击 Source Location,再点击 Link Folder,勾选 Link to folder in the file system,浏览文件系统定位并选择 Lib/ 目录(确保它以 / 结尾)。
应用并关闭属性配置。刷新项目以重新构建。
为了在创建新项目时避免每次都配置路径,最好创建一个最小化的项目并将其保存为一个“模板”,这样每次需要创建新项目时,只需复制“模板”项目并重命名,即可获得来自“模板”项目的所有配置。