2015-06-10 138 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即可。