一些Clion使用记录
编译链设置
在设置“工具链”中可以按需增加不同的编译链
访问越界溢出debug
借助了clion里面打开address sanitizer,但是自己折腾了挺久都没在windows环境中解决一下报错问题,缺少一个 lasan库
FAILED: XXXXX.exe
cmd.exe /C "cd . && "D:\Program Files\JetBrains\CLion 2022.1\bin\mingw\bin\g++.exe" -fsanitize=address -g -g CMakeFiles/SEP_lab6.dir/boggle2.cpp.obj CMakeFiles/SEP_lab6.dir/lexicon.cpp.obj -o SEP_lab6.exe -Wl,--out-implib,libSEP_lab6.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
D:\Program Files\JetBrains\CLion 2022.1\bin\mingw\bin/ld.exe: cannot find -lasan
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
网上很多教程都是在linux环境使用clion结合sanitizer,于是自己在虚拟机中使用clion,找到了当时的bug。出于好奇和偷懒,想在windows的环境使用clion,连接本地wsl使用sanitizer来debug。
具体过程:
- 在工具链中增加“WSL”,见上图
- 在设置Cmake中增加一项使用wsl的配置文件
-
在
CMakeList.txt
文件中增加,设置参考官方Clion手册 Google sanitizers或者Clang配置set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -g")
- 使用新的配置选项开始运行
- 查看报错信息