2015-06-10 141 views
5

我正在尝试使用Microsoft C++在Windows上正常编译几个项目,并使用clang编译它们。msbuild将路径设置为CL

好处在于,存在clang-cl.exe,它被设计成为cl.exe的一个直接替代品。但是,即使我将clng-cl.exe复制到当前目录中作为cl.exe,msbuild仍会在某些情况下调用Microsoft的cl.exe。

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

另外,有没有办法告诉它提供或覆盖CLI命令行参数,而无需更改项目文件?

回答

3

这很容易从命令行或项目文件中完成。您需要配置的属性是$(CLToolExe)$(CLToolPath)

在命令行:

msbuild MyProj.vcxproj /p:CLToolExe=clang-cl.exe /p:CLToolPath=c:\whatever\path\to\the\tool 

或者,您.vcxproj文件中:

<PropertyGroup> 
    <CLToolExe>clang-cl.exe</CLToolExe> 
    <CLToolPath>c:\whatever\path\to\the\tool</CLToolPath> 
</PropertyGroup> 

如果调用任务CL直接在您的.vcxproj文件,而不是仅仅依靠共同目标,只需设置CL任务的相应参数ToolExeToolPath即可。