我正在尝试几个通常在Windows上使用Microsoft C++编译的项目,而改为使用clang编译它们。
好的方面是,存在clang-cl.exe,该文件旨在替代cl.exe。但是,即使将clang-cl.exe作为cl.exe复制到当前目录中,msbuild在某些情况下仍会调用Microsoft的cl.exe。
有没有办法告诉msbuild'在这里,当执行Task CL时,使用此cl.exe代替通常的cl.exe'? msbuild的命令行选项在该方向上不包含任何明显的内容。
另外,是否有一种方法可以告诉它为cl提供或覆盖命令行参数,而无需更改项目文件?
最佳答案
从命令行或项目文件都很容易做到这一点。您需要配置的属性是$(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>
如果直接在.vcxproj文件中调用任务CL,而不是仅仅依赖于公共(public)目标,则只需设置CL任务的相应参数
ToolExe
和ToolPath
。关于visual-studio - 如何在MSBuild中使用Clang编译器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30761708/