Подтвердить что ты не робот

Можно ли создавать настольные программы ARM с помощью visual studio 2012?

Я работал с бета-версией visual studio 2012, а моя программа для рабочего стола (win32) скомпилирована в архитектуре ARM.

После обновления до visual studio 2012 RC компилятор не работает и выводит из строя следующую ошибку:

"Компиляция настольных приложений для платформы ARM не поддерживается"

Я нашел сообщение на форуме по этому вопросу http://connect.microsoft.com/VisualStudio/feedback/details/745580/arm-configuration-doesnt-work

Правильно ли, что Microsoft действительно отключает разработку win32 на ARM? И что компиляция в VS2012-бета была просто случайностью?

4b9b3361

Ответ 1

Вы можете отредактировать файл:

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

В разделе <PropertyGroup> добавьте строку:

<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>

до </PropertyGroup>

И все это, вы можете создавать настольные приложения ARM с помощью VS2012.

Ответ 2

Мне удалось обойти эту ошибку и скомпилировать небольшой файл cpp "hello world" для ARM, добавив аргумент командной строки "/D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE" в версию ARM cl в C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_arm. Я обнаружил, что #define из sn0w ответит на этот вопрос в файле crtdefs.h, не изменяя этот файл. Теперь я не могу гарантировать, что на самом деле будет работать что-то более сложное, или что Microsoft не установила какую-либо проверку белых или цифровых подписи для настольных приложений Windows RT, поэтому, даже если она может компилироваться, ее не разрешено запускать когда Windows RT наконец доступна.

Обратите внимание, что перед тем, как вы сможете запустить версию cl.exe ARM из командной строки, вы должны установить переменные среды, используя этот командный файл: "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_arm\vcvarsx86_arm.bat"

Ответ 3

Даже если вы скомпилируете приложение, вы не сможете запустить его в Windows 8 RT, поскольку неподписанные приложения не будут запускаться.

Я только что проверил это, и, к сожалению, это так.

Появляется следующее сообщение:
Windows cannot verify the digital signature of this file

Я предполагаю, что для этого, вероятно, есть работа, но она официально не будет поддерживаться.

Ответ 4

да, конечно. Я тренировался с VS2012 RC. теперь я объясню, как избежать "Компиляция настольных приложений для платформы ARM не поддерживается" и создать приложение win32.

1st way: fix build tools - цель состоит в том, чтобы патч (или попытаться заменить его на бета-версию). MSBuild lib: Microsoft.Build.CPPTasks.Common.v110.dll

2-й способ: запустите команду VS2012 ARM Cross Tools Command Prompt из меню запуска Visual Studio, затем выполните cl [cl params] myfile1.cpp myfile2.cpp myres.res.../link [linkparams]

для обоих этих случаев вам также необходимо прокомментировать директиву #error в crtdefs.h в строке 332. (Microsoft Visual Studio 11.0\VC\include)