首先,lc 这里 C++17 & AddressSanitizer

并且可以使用 万能头文件 & pb_ds, 把它们贴进去运行代码也是没问题的。

尝试在本机 Windows 搭建这样的环境:
能够使用 C++17 以上的特性
能够使用万能头文件 #include <bits/stdc++.h>
能够使用 pb_ds 库
能够使用 AddressSanitizer 进行代码越界等检测
本机环境:
首先尝试了按照 jetbrains 官网 的手法利用 Visual Studio 搭建:

此时的 CMakeLists:
cmake_minimum_required (VERSION 3.12)
project (C_)
set (CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -g -O0")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0")
file (GLOB files ./*.cpp)
foreach (file ${files})
string(REGEX REPLACE ".+/(.+)\\..*" "\\1" exe ${file})
add_executable (${exe} ${file})
target_link_directories(${exe} PRIVATE "D:/Programs/VisualStudio/program/VC/Tools/Llvm/x64/lib/clang/12.0.0/lib/windows")
target_link_libraries(${exe} PRIVATE clang_rt.asan_dynamic-x86_64 clang_rt.asan_dll_thunk-x86_64)
target_link_options(${exe} PRIVATE /wholearchive:clang_rt.asan_dynamic_runtime_thunk-x86_64.lib)
message (./${exe}.cpp\ will\ be\ compiled\ to\ ./${exe})
endforeach ()于是光荣地报错了

这个报错并没有 Google 到解决办法(因为解决办法就是上面官网那里的配置)
release 虽然没有报错,但是连个 hello world 都运行不了。


ps: 把 CMakeLists 中的 -fsanitize=address 和三行 target_link 删掉,可以运行代码,但是无法打上断点 debug,并且这样也没实现我都要的 AddressSanitizer.
用 msys2 搭建了 MinGW 和 Clang 的环境。并且把 g++, gcc, clang 都加到环境变量了

配置了 clang 的 Toolchains, 可以正常编译运行代码。

但是 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")后, 爆了个这样的错

然而这里是有值的,懵

ps:而且 clang 没有万能头文件和 pb_ds, 即使我从 MinGW 那里复制了过去也还是会编译报错。