2011-10-20 61 views
1

我試圖建立使用的MSBuild的CL任務的「Hello World」 C程序如下:使用的MSBuild的CL任務不創建可執行

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <UsingTask TaskName="CL" AssemblyFile="%ASSEMBLYDLL%" /> 
    <ItemGroup> 
    <Compile Include="main.c" /> 
    </ItemGroup> 
    <Target Name="Build"> 
    <CL Sources="@(Compile)" /> 
    </Target> 
</Project> 

通過調用cl.exe /c main.c創建main.obj,但我想創建一個main.exe。如果我在命令行上調用cl.exe main.c,它當然會起作用。不過我想知道如何通過MSBuild來控制這個。我無法找到關於此at the corresponding reference page at MSDN的信息。

回答

1

我忽略了撥打cl.exe main.c實際上撥打cl.exe main.c && link.exe main.obj,創建了main.exe。以下按預期工作。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <UsingTask TaskName="CL" AssemblyFile="%ASSEMBLYDLL%" /> 
    <UsingTask TaskName="Link" AssemblyFile="%ASSEMBLYDLL%" /> 
    <ItemGroup> 
    <Compile Include="main.c" /> 
    </ItemGroup> 
    <Target Name="Build"> 
    <CL Sources="@(Compile)" /> 
    <Link Sources="@(Compile -> '%(Filename).obj')" /> 
    </Target> 
</Project>