ano*_*nol 9 clang address-sanitizer
我刚刚使用 CMake 编译了 Clang,然后尝试运行消毒程序(使用clang -fsanitize=address),但得到:
/usr/bin/ld: cannot find <CLANG_DIR>/9.0.0/lib/linux/libclang_rt.asan-x86_64.a:
No such file or directory
Run Code Online (Sandbox Code Playgroud)
然后我转到“如何构建”Address sanitizer 页面,但它只是说:
使用CMake构建 LLVM/Clang 。
这让我回到了第一页。页面中唯一提到“清理”的地方是:
LLVM_USE_SANITIZER:STRING
定义用于构建 LLVM 二进制文件和测试的清理程序。可能的值包括“地址”、“内存”、“MemoryWithOrigins”、“未定义”、“线程”和“地址;未定义”。默认为空字符串。
但这与使用清理程序构建 LLVM 本身有关,而不是在构建后使其可用。
那么,我怎样才能真正构建消毒剂并使其可供 Clang 使用呢?
实现 Asan 回调的运行时库位于compiler-rt存储库中,因此您也需要构建它。实现此目的的一种简单方法是在运行 cmake 之前克隆compiler-rt到llvm/projects。
| 归档时间: |
|
| 查看次数: |
5443 次 |
| 最近记录: |