VS code 使用STM32CubelDE for Visual Studio Code环境,如何配置CMakeLists.txt新增其他.C文件路径

从STM32CubeMX生成工程根目录 CMakeLists.txt 开头的注释可以明确看到:

This file is generated only once,

and is not re-generated if converter is called multiple times.

这意味着 这个文件只会由 CubeMX 在第一次生成项目时创建,后续无论你再怎么用 CubeMX 重新生成代码,它都不会被自动覆盖。

所以,你可以放心地直接修改它,完全不需要担心"重置"的问题。

在这个文件中添加外部 .c 文件的方法

你的 CMakeLists.txt 里已经为你准备好了清晰的占位区域,你只需要把外部源文件、头文件路径填入对应位置即可。

  1. 添加源文件(.c)
    找到这一段:

cmake

Add sources to executable

target_sources(${CMAKE_PROJECT_NAME} PRIVATE

Add user sources here

)

把 # Add user sources here 替换成你自己的源文件,例如:

cmake

target_sources(${CMAKE_PROJECT_NAME} PRIVATE

Add user sources here

${CMAKE_CURRENT_SOURCE_DIR}/User/sensor.c

${CMAKE_CURRENT_SOURCE_DIR}/User/motor.c

)

或者用通配符号(file(GLOB ...))一次性包含某个文件夹下所有 .c 文件:

cmake

file(GLOB USER_SOURCES "CMAKECURRENTSOURCEDIR/User/∗.c")targetsources({CMAKE_CURRENT_SOURCE_DIR}/User/*.c") target_sources(CMAKECURRENTSOURCEDIR/User/∗.c")targetsources({CMAKE_PROJECT_NAME} PRIVATE ${USER_SOURCES})

只要保证它们出现在 PRIVATE 后面的列表里就行。

  1. 添加头文件搜索路径
    找到这一段:

cmake

Add include paths

target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE

Add user defined include paths

)

把 # Add user defined include paths 替换成你自己的路径,例如:

cmake

target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE

Add user defined include paths

${CMAKE_CURRENT_SOURCE_DIR}/User

)

这样编译器就能找到 User 目录下的 .h 文件了。

  1. (可选)添加宏定义 / 库
    同样,你还可以在对应的 # Add user defined symbols 或 # Add user defined libraries 区域添加全局宏或链接额外的库。

CMakeLists.txt 文件解释

相关推荐
离凌寒1 小时前
一、关于正点原子stm32mp157上的hdmi显示效果补充演示
stm32·单片机·嵌入式硬件
一路向北he9 小时前
trae或者vscode定义了文件,但是文件不亮是灰的
ide·vscode·编辑器
小程序设计11 小时前
基于STM32的智慧厨房多参数安全监测与预警系统设计
stm32·嵌入式硬件·安全
新晨单片机设计12 小时前
S008C-基于STM32单片机无线抢答器【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·无线抢答器
Zw-awa12 小时前
Delay_us 与 Delay_ms:用 SysTick 做一把可靠的时间尺
stm32
小程序设计14 小时前
基于STM32森林火灾远程监测模块设计
stm32·单片机·嵌入式硬件
@yanyu66614 小时前
C编译器安装与第一个C程序
c语言·开发语言
山下梅子酒22514 小时前
洛谷-入门-B2070
c语言
Logic10115 小时前
C语言/数据结构位运算题解:异或XOR找出多任务下载器中的“独特下载速度“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
沐欣工作室_lvyiyi16 小时前
基于STM32单片机汽车充电桩控制模块设计(论文+源码)
stm32·单片机·汽车·毕业设计