使用xbuild编译visual c ++项目时定义一个目标

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

如果我尝试使用“xbuild”调用构build项目,那么我得到以下错误:

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

我从文档中了解到,我需要在csproj文件中添加一个名为“Build”的Target,但是我不知道该怎么做。 我试过像这样导入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计算机上,可以在以下位置找到部分或全部这些设备。 我没有使用xbuild在任何版本的Linux下测试它们:

VS2012C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v110
VS2013C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v120
VS2015C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140