使用MSBuild的CL任务不会创建可执行文件

时间:2011-10-20 20:38:43

标签: c visual-c++ msbuild compilation

我正在尝试使用MSBuild的CL任务构建一个“Hello World”C程序,如下所示:

<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>

通过调用main.obj创建cl.exe /c main.c ,但我想创建main.exe 。如果我在命令行上调用cl.exe main.c,它当然可以工作。但是我想知道如何通过MSBuild 来控制它。我找不到有关此at the corresponding reference page at MSDN的信息。

1 个答案:

答案 0 :(得分: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>