2011-10-20 27 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>