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 文件解释

相关推荐
golang学习记5 小时前
Python vs Go:2026年到底该怎么选
java·vscode·python·golang·pycharm·goland
‎ദ്ദിᵔ.˛.ᵔ₎5 小时前
STM32 时钟树与 RCC
stm32
我叫洋洋6 小时前
Cadence 16.6 从 OrCAD Capture 原理图到 Allegro PCB 全流程(含 5 个常见坑)
c语言·eda·嘉立创
小云小白6 小时前
用 VSCode + Claude Code 搭一套专利编写 AI 辅助环境
vscode·ai写作·专利
笨笨饿6 小时前
#142_VS Code.map文件插件的用法
git·python·stm32·单片机·嵌入式硬件·物联网·vim
coderSong25686 小时前
【Ubuntu】ctrl+shift+f 繁体中文切换、VScode全集搜索
linux·vscode·ubuntu
水饺编程7 小时前
第2章:Linux 基础,关机命令
linux·c语言·汇编
Zw-awa7 小时前
让小车沿线转得顺:循迹位置环 PID
stm32
铅笔小新z7 小时前
【stm32】RTC(实时时钟)
stm32·单片机·实时音视频
糖糖单片机设计7 小时前
基于 STM32 的风力发电机控制系统
stm32·单片机·嵌入式硬件