这是一个老问题,自那时以来已经发生了很多变化。鉴于在Windows上尝试Clang时遇到的这个常见问题,它值得获得一份更新的答案。
截至2017年,使用LLVM 3.9.1构建Windows版本,您需要以下内容才能从shell中调用clang
。
VC++生成工具
我们仍然没有Windows版的libc ++端口,因此Clang使用VC ++库以及VC ++链接器。
所以首先需要在系统上安装VC++生成工具。请注意,如果您恰好拥有Visual C ++ IDE,则已经安装了这些工具。
环境变量
您需要告诉Clang在哪里找到生成工具及其库。
选项1(vcvarsall.bat)
这是最简单和标准的选项。
运行
> "%VS140COMNTOOLS%../../VC/vcvarsall.bat" amd64
将amd64
替换为Clang上的目标架构,可能是x86
、amd64
或arm
。如果您使用不同版本的VC++工具集,则还可以替换%VS140COMNTOOLS%
。
作为快捷方式,您可以运行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 driver正在尽可能自动化这些操作,通过查询Windows注册表和许多其他技巧来实现,因此未来可能不再需要这些步骤。
clang++
吧?不过我不确定这有什么关系。 - Vittorio RomeoVS2012 x86 Native Tools Command Prompt
或类似的东西,将clang++.exe
添加到路径中,然后再尝试。 - Siyuan Ren