这是一个老问题,从那以后发生了很多变化。鉴于这是在 Windows 上尝试 Clang 时的常见问题,它值得一个更新的答案。
截至 2017 年,使用适用于 Windows 的 LLVM 3.9.1 构建,您需要以下内容才能clang
从您的 shell 调用。
VC++ 构建工具
我们仍然没有适用于 Windows 的 libc++ 端口,因此 Clang 使用 VC++ 库以及 VC++ 链接器。
所以首先你需要在你的系统上安装VC++ Build Tools。如果您碰巧有 Visual C++ IDE,请注意您已经安装了这些。
环境变量
您需要告诉 Clang 在哪里可以找到构建工具及其库。
选项 1 (vcvarsall.bat)
这是最简单和标准的选项。
跑
> "%VS140COMNTOOLS%../../VC/vcvarsall.bat" amd64
替换amd64
为 Clang 上的目标架构,可能是x86
,amd64
或arm
. %VS140COMNTOOLS%
如果您有不同版本的 VC++ 工具集,您也可以更换。
作为快捷方式,您可以运行 Visual C++ 命令提示符而不是cmd+vcvarsall
,因为您需要为打开的每个命令提示符调用此批处理。
现在您可以享受Clang 了。
选项 2(手动)
如果您无法运行vcvarsall.bat
或想要自动化此过程,欢迎您,我也有同样的需求。
以下所有环境变量都是由 自动设置的vcvarsall.bat
,因此您可以运行它并从那里获取您的机器值。我将以地雷为例,希望其他地方也一样。
将INCLUDE
环境变量设置为C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt;C:\Program Files (x86)\Windows Kits\8.1\include\shared;C:\Program Files (x86)\Windows Kits\8.1\include\um;C:\Program Files (x86)\Windows Kits\8.1\include\winrt;
设置LIB
为C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64;
。请注意架构特定的组件!
对于构建工具,您可以打开工具PATH
或设置VCINSTALLDIR
环境变量。Clang 会同时尝试这两种方法,支持VCINSTALLDIR
.
设置或添加VCINSTALLDIR
到您的.%VS140COMNTOOLS%../../VC
%VS140COMNTOOLS%../../VC/bin/amd64
PATH
脚注
这一切都没有充分记录,因此要求可能随时更改,但Clang MSVC 驱动程序正在尝试通过查询 Windows 寄存器和许多其他技巧来尽可能地自动化这一点,所以这些都可能不再是必要的了未来。