1

ディレクトリ内の700を超えるヘッダーファイルをコンパイルするために使用するMSBuildファイルがあります。時間がかかることを除けば、完全に機能します...可能であれば、複数のプロセスを使用してこれらのファイルをより高速にコンパイルしたいと思います。このXMLを出発点として使用して、それを行う方法について誰かがアイデアを持っていますか?

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0"
        xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >

<PropertyGroup>
    ...
</PropertyGroup>

<ItemGroup>
    <SDKFiles   Include="$(CompileDir)\**\*.h" 
            Exclude="$(CompileDir)\**\...;
                    ...
</ItemGroup>

<UsingTask TaskName="CL" AssemblyFile="$(VCTargetsPath)\Platforms\x64\Microsoft.Build.CPPTasks.x64.dll"   Condition="'$(Platform)'=='x64'" />
<UsingTask TaskName="CL" AssemblyFile="$(VCTargetsPath)\Platforms\Win32\Microsoft.Build.CPPTasks.Win32.dll" Condition="'$(Platform)'=='Win32'" />

<Target Name="CompileStuff">
...
    <!-- This CL.exe compiles all the files -->
    <CL Sources="@(SDKFiles)" CompileAs="CompileAsCpp" SuppressStartupBanner="true" ObjectFileName="$(IntDir)" WarningLevel="$(Warnings)" ExceptionHandling="Sync" />
    ...
</Target>
</Project>

次のことを試しましたが、成功しませんでした。1.コマンドラインで/mをMSBuildに渡します。2.マルチプロセスを指定したXML設定を試しましたが、どちらも機能しませんでした。

ありがとう

4

1 に答える 1

1

この5か月間は誰も助けてくれなかったので、自分でタスク拡張機能を作成する必要があったと言っても過言ではありません。そのタスクは、複数のスレッドを使用して、渡されたファイルをコンパイルします。

于 2013-05-04T11:24:14.433 に答える