我正在测试使用MSBuild为Windows Phone和Windows Store执行现有C ++项目的ARM构建的可行性。在带有VS2012的Windows 7上,我打开了Visual Studio 2012 ARM Developer命令提示符。然后我试着看看会发生什么:
C:\cryptopp>msbuild /t:Build /p:Configuration=Debug;Platform=ARM cryptlib.vcxproj
Microsoft (R) Build Engine version 4.6.1055.0
Build started 10/6/2016 1:11:47 PM.
The target "Midl" listed in a BeforeTargets attribute at "C:\Program Files (x86
)\MSBuild\Microsoft.Cpp\v4.0\V110\BuildCustomizations\masm.targets (28,5)" does
not exist in the project, and will be ignored.
The target "CustomBuild" listed in an AfterTargets attribute at "C:\Program Fil
es (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\BuildCustomizations\masm.targets (29,5
)" does not exist in the project, and will be ignored.
Project "C:\cryptopp\cryptlib.vcxproj" on node 1 (Build target(s)).
C:\cryptopp\cryptlib.vcxproj : error MSB4057: The target "Build" does not exist
in the project.
Done Building Project "C:\cryptopp\cryptlib.vcxproj" (Build target(s)) -- FAILE
D.
Build FAILED.
"C:\cryptopp\cryptlib.vcxproj" (Build target) (1)
->
C:\cryptopp\cryptlib.vcxproj : error MSB4057: The target "Build" does not exi
st in the project.
0 Warning(s)
1 Error(s)
我也厌倦了将以下内容添加到cryptlib.vcxproj
,但导致了同样的错误。
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
根据上面的错误,我不确定MSBuild是否支持ARM或者是否有其他错误。在使用VS2013的Windows 8上进行测试时,我得到了类似的结果。类似的结果是另一个失败的错误消息。
错误消息 The target "Build" does not exist in the project
是否意味着MSBuild不支持ARM?可以使用MSBuild在ARM下构建C ++项目吗?
答案 0 :(得分:1)
是的,这绝对是可能的。
libvpx的构建系统会生成vcxproj
/ sln
个文件,包括对ARM
平台的支持,这些文件可以使用msbuild.exe
或在Visual Studio中打开。
可以在https://chromium.googlesource.com/webm/libvpx/+/8b5eddf709b/build/make/gen_msvs_vcxproj.sh找到生成项目文件的脚本。如果你想亲自尝试一下(查看实际生成的项目文件),克隆libvpx,并像这样生成visual studio项目文件(针对Visual Studio 2012)(在MSYS shell中,在一个目录之外的目录中) libvpx目录):
../libvpx/configure --target=armv7-win32-vs11
make
(如果您只是在带有./configure
的libvpx目录中运行它,它也可以工作,但我只在一个单独的目录中验证它。)
如果在路径中找到,则make步骤也会调用msbuild.exe
。如果没有,请打开一个单独的shell,在路径中有msbuild.exe
,并按照以下方式构建它:
msbuild vpx.sln -m -t:Build -p:Configuration=Release -p:Platform=ARM