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

相关推荐
LDR0063 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
✎ ﹏梦醒͜ღ҉繁华落℘3 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
Luminous.3 天前
C语言--day30
c语言·开发语言
玖玥拾3 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
謓泽3 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
牛根生同志3 天前
SPI数据收发的时候 TXE与RXNE标志位置位的时机
stm32·spi·transfer
2601_951643883 天前
C语言长文整理,关键字和数据类型
c语言·数据类型·关键字·嵌入式开发·格式化输出
goldenrolan3 天前
学习型红外控制系统稳定性挂测工装专项总结
软件测试·python·stm32·嵌入式·红外
m0_547486663 天前
《C#语言程序设计与实践》 全套PPT课件
c语言·c#·c语言程序设计