在使用 Xbuild 编译 Visual C++ 项目时定义目标

defining a target when compiling a visual c++ project using xbuild

本文关键字:项目 定义 目标 C++ Visual Xbuild 编译      更新时间:2023-10-16

我有一个输出库的Visual c ++项目,我想使用xmake在Linux上构建它。我可以在 monodevelopment 中构建它,但我希望能够从命令行构建它。

如果我尝试使用"xbuild"调用构建项目,则会收到以下错误:

....ItemMinerLibMono.cproj: error : Target named 'Build' not found in the project.

我从文档中了解到我需要在 csproj 文件中添加一个名为"Build"的目标,但我不知道该怎么做。我尝试像这样导入 Microsoft.Common.targets 文件:

<Import Project="$(MSBuildBinPath)Microsoft.Common.targets" />

但随后我收到错误:

: error : Target 'CreateManifestResourceNames', a dependency of target 'PrepareResources', not found.

有没有人知道如何从命令行成功编译c ++项目?

谢谢格雷戈尔

将以下内容添加到 MonoDevelop 的 .cproj 文件中,它将使用 xbuild 构建。

<Target Name="Build" DependsOnTargets="$(BuildDependsOn)" Outputs="$(TargetPath)"/>

可能有一个更简单的解决方案,但到目前为止我还没有想出一个。

您需要

导入 Cpp 目标。

<Import Project="$(VCTargetsPath)Microsoft.Cpp.Default.props" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.props" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.targets" />

在安装了完整 Visual Studio 的 Windows 计算机上,可以在以下位置找到其中的部分或全部。我还没有在任何版本的 Linux 下测试过这些 xbuild

VS2012C:Program Files (x86)MSBuildMicrosoft.Cppv4.0v110
VS2013C:Program Files (x86)MSBuildMicrosoft.Cppv4.0v120
VS2015C:Program Files (x86)MSBuildMicrosoft.Cppv4.0v140