如何在Windows上构建clang compiler-rt链接动态Visual C ++运行时?

时间:2018-02-02 15:50:13

标签: qt visual-c++ llvm-clang address-sanitizer clang-cl

我想在Windows上使用带有地址清理程序的clang-cl。当尝试使用官方安装程序中的预构建llvm / clang包时,我会收到链接器错误,因为我的应用程序需要链接到动态CRT(/ MD)而不是静态CRT(/ MT,llvm / clang安装程序中的包具有编译器) -rt用这个建造。)

我想在Qt中使用它,因为我没有设法使用/ MT构建Qt。

根据谷歌工程师的these幻灯片,可以使用/ MT构建compiler-rt / asan。

在构建llvm / clang以构建带有/ MT的编译器-rt时,与these instructions相比,我需要更改什么?

1 个答案:

答案 0 :(得分:0)

事实证明我的链接器错误有another的原因。

要查找所需的库,请使用以下命令构建一个小型hello-world应用程序,检查生成的链接器命令并显式链接到所需的库:

clang-cl -v -fsanitize=address /MD test.cpp

PR35343(目前尚未解决)是支持在lld-link中自动链接清理程序库,就像在其他平台上完成一样。