MSBuild 忽略项目文件中的 CLToolExe 属性
MSBuild ignoring CLToolExe property in project file
我正在尝试在 Windows 上使用 clang 编译 Python 2.7。我认为这样做的解决方案是指定属性 CLToolPath 和 CLToolExe。但是,当我在项目文件中设置这些属性时,msbuild 似乎只是忽略它们并继续使用 Microsoft 编译器。
奇怪的是,当我在命令行上指定这些属性时,msbuild 确实会拾取它们。 (但由于 Python 2.7 设置方式的其他方面,构建实际上并没有成功,所以它没有解决问题。它只是证明这些是正确的属性。)
这是项目文件的相关部分
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<Link>
<SubSystem>Console</SubSystem>
</Link>
<ClCompile>
<CLToolPath>C:\llvm\build\Release\bin</CLToolPath>
<CLToolExe>clang-cl.exe</CLToolExe>
</ClCompile>
</ItemDefinitionGroup>
这是我正在使用的命令行
msbuild /t:clean,build /p:Configuration=Release /p:TrackFileAccess=false /p:Platform="x64" /fileLogger pcbuild.sln
知道是什么导致属性被忽略吗?
你放错地方了。找到相关的 PropertyGroup
标签并添加 <CLToolExe>
和 <CLToolExe>
如下:
<PropertyGroup>
<CLToolExe>clang-cl.exe</CLToolExe>
<CLToolPath>C:\llvm\build\Release\bin</CLToolPath>
</PropertyGroup>
我正在尝试在 Windows 上使用 clang 编译 Python 2.7。我认为这样做的解决方案是指定属性 CLToolPath 和 CLToolExe。但是,当我在项目文件中设置这些属性时,msbuild 似乎只是忽略它们并继续使用 Microsoft 编译器。
奇怪的是,当我在命令行上指定这些属性时,msbuild 确实会拾取它们。 (但由于 Python 2.7 设置方式的其他方面,构建实际上并没有成功,所以它没有解决问题。它只是证明这些是正确的属性。)
这是项目文件的相关部分
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<Link>
<SubSystem>Console</SubSystem>
</Link>
<ClCompile>
<CLToolPath>C:\llvm\build\Release\bin</CLToolPath>
<CLToolExe>clang-cl.exe</CLToolExe>
</ClCompile>
</ItemDefinitionGroup>
这是我正在使用的命令行
msbuild /t:clean,build /p:Configuration=Release /p:TrackFileAccess=false /p:Platform="x64" /fileLogger pcbuild.sln
知道是什么导致属性被忽略吗?
你放错地方了。找到相关的 PropertyGroup
标签并添加 <CLToolExe>
和 <CLToolExe>
如下:
<PropertyGroup>
<CLToolExe>clang-cl.exe</CLToolExe>
<CLToolPath>C:\llvm\build\Release\bin</CLToolPath>
</PropertyGroup>