使用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
只知道个大概但是能用就行
添加完之后
添加完头文件路径和头文件内容之后就可以正常编译了