2012-06-22 112 views
31

我正在使用Visual Studio 2012測試版和我的桌面(win32)程序在ARM架構中編譯得很好。可以使用visual studio 2012構建ARM桌面程序嗎?

升級到Visual Studio 2012 RC之後,編譯器將不能正常工作,並噴出了以下錯誤:「不支持編譯桌面應用程序爲ARM平臺」

我發現一個論壇帖子上這 http://connect.microsoft.com/VisualStudio/feedback/details/745580/arm-configuration-doesnt-work

微軟真的切斷ARM上的win32開發是正確的嗎? 而在VS2012 beta編譯只是一個僥倖?

+2

是的,你讀了正確連接發佈。 Windows RT(Windows 8 for ARM)不支持第三方桌面應用程序。因此,在Visual Studio中不支持開發它們。 – Jon

+0

如果您是MSDN用戶或有權訪問Windows Phone/Mobile代碼,則應該查看cl.exe – sgupta

+0

我有一個DLL正在執行此操作。如果我想在C#和XAML應用程序中使用該DLL,它仍然是「桌面應用程序」嗎? – jocull

回答

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桌面應用程序。

+0

請檢查此文件是否在另一個程序中打開。 如何修改它? – onmyway133

+0

@mamaich - 我的意思不是粗魯無禮,但微軟是否贊同這一點? (我正在尋找一種微軟批准的方法來避免這個錯誤,因爲這是一個真正的項目,而不是一個類似XDA的黑客(對XDA人沒有任何意義))。 – jww

+0

啊,這很有趣...這個技巧只能修復IDE。如果你放入命令行,你仍然會遇到錯誤。後視,這是有道理的。 – jww

3

當然是。我練習VS2012 RC。 現在我將解釋如何避免「編譯不支持ARM平臺的桌面應用程序」並構建win32應用程序。

1路:解決構建工具 - 目的是修補(或嘗試用測試的一個替代它)的MSBuild的lib:Microsoft.Build.CPPTasks.Common.v110.dll

第二個辦法:運行「 VS2012 ARM交叉工具命令提示符「從Visual Studio Tools開始菜單,然後執行cl [cl params] myfile1.cpp myfile2.cpp myres.res .../link [linkparams]

對於這兩種情況,您還需要(Microsoft Visual Studio 11.0 \ VC \ include)

9

我是能夠得到解決的錯誤,並通過位於C添加「/ d _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE」命令行參數CL的ARM版本編譯一個小的「hello world」 CPP文件ARM:\ Program Files文件(86 )\ 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

Just a nit pick:當使用mamaich的技巧在Visual Studio下編譯時,VS應用'/ D _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE = 1'。 – jww

4

即使您編譯應用程序,也無法在Windows 8 RT上運行它,因爲未簽名的應用程序無法啓動。

我剛測試過這個,不幸的是它是這種情況。

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

我想有可能是這周圍的工作,但是它永遠不會被正式支持。

+1

這裏有一些細節,朝着底部,爲此可能的解決方法... http://forum.xda-developers.com/showthread.php?p=31519618&postcount=1 –

相關問題