使用Cmake管理STM32项目

本文最后更新于 2024年9月6日 下午

使用STM32CubeMX生成的Cmake项目结构

如下图所展示的图片中,1为整个工程的Cmake文件,管理整个项目,2为cubemx生成的用来管理驱动的如GPIO、SPI之类的都在这里
所以我们不能也不需要修改这个文件

注意看这里注释,这里告诉为了我们这个文件只会被生成一次,用户可以随意的修改或添加自己的内容,注意看第二十五行,这里引用了上图中标记2的cmake文件

我们需要添加自己的文件需要添加到根目录下的CmakeLists.txt文件,这个文件不用担心使用cubeMX多次生成代码会被覆盖
会被覆盖的是cmake/stm32cubemx/gcc-arm-none-eabi.camke这个文件

如何添加自己写的代码

方法一

直接添加到工程目录下的core/scr与core/inc之中

这么做的好处就是不用修改任何文件,但是弊端就是不方便管理

方法二

在设置中找到Cmake,勾选“在编辑CmakeListst…..重新加载….”这样就可以保证每次修改之后可以快速重新加载,也可以手动加载不勾选

创建一个自己的User文件夹,名称随意,相当路径随意,我这里是直接放在了根目录下,然后又新建了两个inc与scr文件夹用来分开管理头文件与源文件

将文件这么放了之后编译器并不会搭理它,因为我们没有告诉编译器我们需要编译和连接他,所以我们这时候需要修改根目录下的Cmakelists.txt
文件,然后添加以下内容

注意要添加的分别是源头文件(指定到文件)和头文件目录(指定到目录),可以手动修改,也可以使用clion辅助

使用clion辅助添加源文件(待完善)

在打开或者新建某一个没有包含在工程内的文件时,会跳出如下的提示框,可以点击右上角的“添加到Cmake项目”来辅助添加

这里会跳出两个选项,这两个选项分别是添加到哪个cmkae配置文件,上面这个stm32cubemx文件是cube自己生成的,一定不能选这个,下面这个(圈2)管理整个工程的文件
只生成一次,所以要放在这里面

图中绿色的部分是clion给你在cmakelists.txt文件添加的内容,这里与我上面提到的添加位置并不一样,但是效果相同,我也正在学习cmake
只知道个大概但是能用就行

添加完之后

添加完头文件路径和头文件内容之后就可以正常编译了

Cmake基础语法


使用Cmake管理STM32项目
http://shishengmi.com/2024/06/11/2024/06/使用Cmake管理STM32项目/
作者
shishengmi
发布于
2024年6月11日
许可协议