Windows 上的 GCC:使用地址清理程序

GCC on Windows: Using Address Sanitizer

提问人:DailyLearner 提问时间:8/26/2023 最后编辑:DailyLearner 更新时间:8/26/2023 访问量:128

问:

我正在使用 GCC 的 WinLibs 独立版本和适用于 Windows 的 MinGW-w64。
当我添加编译器选项时,我收到库的链接器错误。
-fsanitize=addressasan

这是我用来编译程序的命令行:

g++ -fsanitize=address -g -Wall -Wextra -pedantic -std=c++20 .\test.cpp

这是错误:

C:/sw/gcc-13.1.0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lasan: No such file or directory
collect2.exe: error: ld returned 1 exit status

如何解决此链接器错误?

C++ gcc 链接器错误 地址清理程序

评论

3赞 Some programmer dude 8/26/2023
快速搜索显示,Windows 上的 GCC 似乎不支持消毒剂。
0赞 user4581301 8/26/2023
我读过,但我没有尝试过,MSYS2 最近的叮当声让 asan 起作用。
0赞 DailyLearner 8/26/2023
在带有 GCC 11.0 的 WSL2 中,我可以使用清理程序
1赞 n. m. could be an AI 8/26/2023
“在带有 GCC 11.0 的 WSL2 中,我可以使用清理程序” 好吧,在 WSL2 中,您只需在 Linux 内核上运行 Linux 可执行文件。它只是用于(大多数)意图和目的的 Linux。另一方面,Windows 则不然。
1赞 Eljay 8/28/2023
在带有 GCC 11.0 的 WSL2 中,我可以使用清理程序非常好!恭喜您让地址清理程序在 Windows 上工作——这正是我本来会做的。

答: 暂无答案