ARM桌面程序可以使用visual studio 2012构建吗?

时间:2012-06-22 06:55:05

标签: arm visual-studio-2012

我正在使用visual studio 2012 beta和我的桌面(win32)程序在ARM架构中编译得很好。

升级到visual studio 2012 RC后,编译器无法正常工作并发出以下错误:

“不支持为ARM平台编译桌面应用程序”

我在此发现了一个论坛帖子 http://connect.microsoft.com/VisualStudio/feedback/details/745580/arm-configuration-doesnt-work

微软是否真的切断了ARM上的win32开发? 在VS2012测试版中编译只是一个侥幸?

4 个答案:

答案 0 :(得分:47)

您可以编辑文件:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\ARM\Microsoft.Cpp.ARM.Common.props

<PropertyGroup>部分添加以下行:

<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>

之前</PropertyGroup>

就是这样,您可以使用VS2012构建ARM桌面应用程序。

答案 1 :(得分:10)

通过在C:\ Program Files(x86)的cl版本中添加“/ D _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE”命令行参数,我能够解决该错误并为ARM编译一个小的“hello world”cpp文件\ Microsoft Visual Studio 11.0 \ VC \ bin \ x86_arm。我在crtdefs.h文件中找到了来自sn0w对此问题的答案的#define,而不必修改该文件。现在,我无法保证任何更复杂的实际工作,或者Microsoft没有为Windows RT桌面应用程序设置某种白名单或数字签名验证,因此即使它可以编译,也可能不允许运行当Windows RT终于可用时。

请注意,在从命令行运行ARM版本的cl.exe之前,必须使用此批处理文件设置环境变量:“C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ bin \ x86_arm \ vcvarsx86_arm.bat“

答案 2 :(得分:4)

即使您编译应用程序,也无法在Windows 8 RT上运行它,因为未签名的应用程序无法启动。

我刚试过这个,不幸的是情况就是这样。

您收到以下消息:
Windows cannot verify the digital signature of this file

我想可能有一个解决方法,但它永远不会得到官方支持。

答案 3 :(得分:3)

是的当然。我练习VS2012 RC。 现在我将解释如何避免“不支持为ARM平台编译桌面应用程序”并构建win32应用程序。

第一种方式:修复构建工具 - 目标是修补(或尝试用beta替换它)MSBuild的lib:Microsoft.Build.CPPTasks.Common.v110.dll

第二种方式:从Visual Studio Tools开始菜单运行“VS2012 ARM Cross Tools命令提示符”,然后执行cl [cl params] myfile1.cpp myfile2.cpp myres.res ... / link [linkparams]

对于这两种情况,您还需要在第332行的crtdefs.h中注释掉#error指令。(Microsoft Visual Studio 11.0 \ VC \ include)