我正在尝试使用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的信息。
答案 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>