在 Windows (MinGW) 的 MinGW 中使用地址清理器找不到 -lasan

Cannot find -lasan using address sanitizer in MinGW in Windows (MinGW)

提问人:Josu Goñi 提问时间:3/6/2019 最后编辑:Drew DormannJosu Goñi 更新时间:3/11/2023 访问量:5354

问:

我正在尝试通过添加到我的文件中来在 Qt 中使用 gcc 地址清理器,但我得到了一个 .CONFIG += sanitizer sanitize_address.proerror: cannot find -lasan

我应该如何安装库?

我正在使用 Qt 提供的 MinGW,但我也可以尝试独立版本。


相关问题:MinGW-w64 的 gcc 和地址消毒器

qt gcc mingw qt-creator 地址-消毒器

评论


答:

5赞 yugr 3/6/2019 #1

不幸的是,GCC 不支持 Windows 上的 Asan:以下是 libsanitizer/configure.tgt 的摘录:

case "${target}" in
  x86_64-*-linux* | i?86-*-linux*)
    ...
  powerpc*-*-linux*)
    ...
  sparc*-*-linux*)
    ...
  s390*-*-linux*)
    ...
  sparc*-*-solaris2.11*)
    ...
  arm*-*-linux*)
    ...
  mips*64*-*-linux*)
    ...
  mips*-*-linux*)
    ...
  aarch64*-*-linux*)
    ...
  x86_64-*-darwin[1]* | i?86-*-darwin[1]*)
    ...
  x86_64-*-solaris2.11* | i?86-*-solaris2.11*)
    ...
  *)
    UNSUPPORTED=1
    ;;
esac

请注意,Clang 支持它(需要付出一些努力 - 有关详细信息,请参阅 wiki),并且许多人已经成功使用它。

评论

0赞 Josu Goñi 3/25/2019
我可以在这里读到这个。你能确认它不能被使用,所以我把你的答案标记为正确吗?ASAN, TSAN and USAN are great technologies which are available in GCC. Unfortunately they are not completely usable on Windows. A proper review and tests are needed before anything.
0赞 yugr 3/25/2019
@JosuGoñi 我添加了一些校对链接。请注意,在 GCC 中添加支持应该不难,只是没有一个主要贡献者对此感兴趣。
1赞 Helder Magalhães 1/12/2022
@JosuGoñi这段摘录现在生活在 mingw-w64.org/contribute/......