位置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 点击重新配置项目