31

Visual Studio 2012 ベータ版と、ARM アーキテクチャで適切にコンパイルされたデスクトップ (win32) プログラムを使用していました。

Visual Studio 2012 RC にアップグレードした後、コンパイラが機能せず、次のエラーが発生します。

「ARM プラットフォーム用のデスクトップ アプリケーションのコンパイルはサポートされていません」

このhttp://connect.microsoft.com/VisualStudio/feedback/details/745580/arm-configuration-doesnt-workでフォーラムの投稿を見つけました

Microsoft が ARM での win32 開発を本当に切り捨てているというのは正しいですか? そして、VS2012 ベータ版でのコンパイルは単なるまぐれでしたか?

4

4 に答える 4

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 デスクトップ アプリを構築できます。

于 2012-09-10T07:27:18.080 に答える
10

このエラーを回避し、C:\ Program Files(x86)\ MicrosoftVisualにあるARMバージョンのclに「/D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE」コマンドライン引数を追加することで、ARM用の小さな「helloworld」cppファイルをコンパイルできました。 Studio 11.0 \ VC \ bin\x86_arm。私は、crtdefs.hファイルでこの質問に対するsn0wの回答から#defineを見つけましたが、そのファイルを変更する必要はありません。さて、もっと複雑なものが実際に機能すること、またはMicrosoftがWindows RTデスクトップアプリに対して何らかのホワイトリストやデジタル署名の検証を実施していないことを保証することはできません。そのため、コンパイルしても実行が許可されない可能性があります。 WindowsRTがついに利用可能になったとき。

コマンドラインからACLバージョンのcl.exeを実行する前に、次のバッチファイルを使用して環境変数を設定する必要があることに注意してください: "C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ bin \ x86_arm \ vcvarsx86_arm.bat "

于 2012-09-13T19:02:12.733 に答える
4

アプリをコンパイルしても、署名されていないアプリは起動しないため、Windows8RTで実行することはできません。

私はこれをテストしたばかりですが、残念ながらそうです。

次のメッセージが表示されます。
Windows cannot verify the digital signature of this file

これにはおそらく回避策があると思いますが、正式にサポートされることはありません。

于 2012-10-18T11:54:27.597 に答える
3

はい、もちろん。VS2012 RCで練習しました。ここで、「ARM プラットフォーム用のデスクトップ アプリケーションのコンパイルはサポートされていません」を回避し、win32 アプリケーションをビルドする方法を説明します。

第 1 の方法: ビルド ツールを修正する - 目標は、MSBuild の lib: Microsoft.Build.CPPTasks.Common.v110.dll

2 番目の方法: Visual Studio Tools のスタート メニューから「VS2012 ARM Cross Tools コマンド プロンプト」を実行し、cl [cl params] myfile1.cpp myfile2.cpp myres.res ... /link [linkparams] を実行します。

どちらの場合も、crtdefs.h の 332 行目の #error ディレクティブをコメントアウトする必要があります (Microsoft Visual Studio 11.0\VC\include)。

于 2012-07-29T11:07:54.037 に答える