如何在MSBuild中使用Clang编译器?

rwa*_*ace 8 msbuild clang visual-studio

我正在尝试使用通常使用Microsoft C++在Windows上编译的几个项目,并使用clang编译它们.

在好的方面,存在clang-cl.exe,它被设计为cl.exe的替代品.但是,即使我将clang-cl.exe作为cl.exe复制到当前目录中,msbuild仍然在某些情况下调用Microsoft的cl.exe.

有没有办法告诉msbuild'这里,在执行任务CL时,使用这个cl.exe而不是通常的'?msbuild的命令行选项不包含任何明显的方向.

另外,有没有办法告诉它在不更改项目文件的情况下为cl提供或覆盖命令行参数?

sev*_*tov 6

从命令行或项目文件中可以轻松完成此操作.您需要配置的属性是$(CLToolExe)和$(CLToolPath).

从命令行:

msbuild MyProj.vcxproj /p:CLToolExe=clang-cl.exe /p:CLToolPath=c:\whatever\path\to\the\tool
Run Code Online (Sandbox Code Playgroud)

或者,在.vcxproj文件中:

<PropertyGroup>
  <CLToolExe>clang-cl.exe</CLToolExe>
  <CLToolPath>c:\whatever\path\to\the\tool</CLToolPath>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

如果您直接在.vcxproj文件中调用任务CL,而不是仅仅依赖于公共目标,只需设置相应的参数ToolExe和ToolPathCL任务.