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

相关推荐
山上三树37 分钟前
C/C++ 高频报错速查表(开发通用版)
c语言·开发语言·c++
神仙别闹1 小时前
基于C语言 实现 Windows PE 文件解析
c语言·windows·microsoft
小poop1 小时前
VS实用调试技巧详解
vscode
π同学2 小时前
ESP-IDF+vscode开发ESP32第十五讲——队列、流缓冲区、环形缓冲区
vscode·esp32·缓冲区
LDR0062 小时前
LDR6020:多 Type‑C 端口角色管理与外设上电顺序的智慧核心
c语言·开发语言·云计算
普中科技3 小时前
【普中STM32F1xx开发攻略--标准库版】-- 第 40 章 FSMC-TFTLCD 显示实验
stm32·单片机·嵌入式硬件·fsmc·开发板·tftlcd·普中科技
東隅已逝,桑榆非晚3 小时前
新手入门指南:认识 C 语言文件操作(上)
c语言·开发语言·笔记
社交怪人4 小时前
【A×B】信息学奥赛一本通C语言解法(题号1036)
c语言
LCG元4 小时前
STM32实战:基于STM32F103的智能衣柜(除湿+防霉+照明)
stm32·单片机·嵌入式硬件
Eric 辰东4 小时前
【C 语言程序的编译和链接】详解编译链接过程
c语言·笔记·算法·学习方法