从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 里已经为你准备好了清晰的占位区域,你只需要把外部源文件、头文件路径填入对应位置即可。
- 添加源文件(.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 后面的列表里就行。
- 添加头文件搜索路径
找到这一段:
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 文件了。
- (可选)添加宏定义 / 库
同样,你还可以在对应的 # Add user defined symbols 或 # Add user defined libraries 区域添加全局宏或链接额外的库。
CMakeLists.txt 文件解释
