如何自定义VS Code中CMake Tools的CMake: Quick Start生成的CMakeLists.txt?
自定义VS Code CMake Tools Quick Start生成的CMakeLists.txt
方案1:修改扩展内置模板
CMake Tools的CMake: Quick Start依赖内置模板生成文件,你可以直接修改模板:
- 找到CMake Tools扩展的安装目录:
- Windows:
%USERPROFILE%\.vscode\extensions\ms-vscode.cmake-tools-<版本号> - macOS/Linux:
~/.vscode/extensions/ms-vscode.cmake-tools-<版本号>
- Windows:
- 进入
resources/templates文件夹,编辑CMakeLists.txt模板 - 把Address Sanitizer配置整合到模板中,示例如下:
cmake_minimum_required(VERSION 3.0.0) project(${PROJECT_NAME} VERSION 0.1.0) include(CTest) enable_testing() add_executable(${PROJECT_NAME} main.cpp) # Debug模式自动启用Address & Undefined Sanitizer if(CMAKE_DEFAULT_BUILD_TYPE MATCHES "Debug") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fsanitize=undefined -fsanitize=address") target_link_options(${PROJECT_NAME} BEFORE PUBLIC -fsanitize=undefined PUBLIC -fsanitize=address ) endif() set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) include(CPack)
方案2:使用自定义模板(推荐,避免扩展更新覆盖)
为了避免扩展更新重置模板,可使用自定义模板:
- 本地创建
CMakeLists.txt.template文件,内容同上 - 打开VS Code设置(快捷键
Ctrl+,),搜索cmake.quickstartTemplatePath - 将该设置的值改为自定义模板文件的绝对路径
此后运行CMake: Quick Start时,会自动使用你的模板生成带Sanitizer配置的项目。
关键提示
- 确保编译器支持Sanitizer(GCC、Clang原生支持,MSVC需2019及以上版本)
- 配置仅在Debug模式生效,适配调试场景
- 使用
${PROJECT_NAME}变量替代硬编码的项目名,适配任意新项目名称
内容的提问来源于stack exchange,提问作者Shimada_R.
相关产品推荐
相关产品推荐

