☰
Qt + MSVC + CMAKE 添加AddressSanitizer
2026/10/14 16:24:21 网站建设 项目流程


位置1:CMakeLists.txt 文件
首先需要在项目的 CMakeLists.txt 文件中添加配置代码。

找到你的 CMakeLists.txt :

# 在 CMakeLists.txt 中添加以下代码(在 find_package 之前)

option(ENABLE_ASAN "Enable AddressSanitizer" OFF) if(ENABLE_ASAN AND MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fsanitize=address") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /fsanitize=address") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /INCREMENTAL:NO") message(STATUS "MSVC AddressSanitizer enabled") endif()

或者

# AddressSanitizer 配置(MSVC) option(ENABLE_ASAN "Enable AddressSanitizer" OFF) if(ENABLE_ASAN) if(MSVC) # MSVC 的 AddressSanitizer 编译选项 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fsanitize=address") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /fsanitize=address") # 链接选项 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /INCREMENTAL:NO") message(STATUS "MSVC AddressSanitizer enabled") else() # GCC/Clang 的配置 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address") endif() endif()

添加 AddressSanitizer 配置 :

### 位置2:Qt Creator 中的 "Additional CMake options"

找到 "Additional CMake options" 输入框 :

滚动到 "Kit Configuration" 区域的底部:

`
Additional CMake options: ______________________
`
在这个输入框中添加 :
-DENABLE_ASAN=ON

### 完整步骤

### 完整步骤 步骤1:编辑 CMakeLists.txt
1. 在 Qt Creator 中打开 CMakeLists.txt
2. 在文件开头添加 AddressSanitizer 配置
3. 保存文件 步骤2:在 Qt Creator 中设置
1. 打开 "Projects" 面板(左侧边栏)
2. 选择 "Desktop Qt 5.15.2 MSVC2019 64bit" 配置
3. 滚动到 "Kit Configuration" 区域
4. 在 "Additional CMake options" 输入框中输入:
5. 点击下方的 "执行CMake" 按钮
6. 重新构建项目

```
Qt Creator Projects 面板
┌─────────────────────────────────────────────────────────┐
│ Kit Configuration │
│ ┌───────────────────────────────────────────────────┐ │
│ │ 密钥 值 │ │
│ │ QT_QMAKE_EXECUTABLE .../qmake.exe │ │
│ │ Qt5Core_DIR .../Qt5Core │ │
│ │ ... ... │ │
│ └───────────────────────────────────────────────────┘ │
│ │
│ Additional CMake options: ___________________________ │ ← 在这里输入
-DENABLE_ASAN=ON
│ │
│ 执行CMake │ ← 点击这个按钮
│ │
│ 使用 Build Environment │
│ ┌───────────────────────────────────────────────────┐ │
│ │ ... │ │
│ └───────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
```
### 验证是否生效
1. 构建项目
2. 运行程序
3. 如果启用成功,控制台会输出类似信息:
```
==12345==AddressSanitizer: libasan initializing
```
### 总结
位置 需要做什么 CMakeLists.txt 添加 AddressSanitizer 编译选项 Additional CMake options 添加 -DENABLE_ASAN=ON 执行CMake 点击重新配置项目

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询