はじめに
前回初投稿の「Windows 10 on ARM 用 アプリ を Windows 10 on ARM 上の Visual Studio 2019 (x86) でビルドする」に続きまして、今回は実際に使用するレベルのアプリ・ツールをビルドしました。
さて、Windows において何をさておいても入れておきたいツールといえばなんでしょう?
そう、皆さん大好き「 7-zip 」です!(※個人の感想です。効果には個人差がありありです)
ですが残念なことに現時点では ARM64 版は配布されておりません…
x86 版で我慢すればいいじゃないという声も聞こえてきそうですが、実は WoA の弱点で、シェルエクステンションなんかはネイティブの .dll でないと呼び出しができないのです。
シェルエクステンションの使えない 7-zip なんてク◯ープを入れないコーヒーみたいなもの(歳バレ)なので、なんとかビルドできないものかと Web で情報を漁ったり試行錯誤した結果、どうにかビルドが通りましたのでここに投稿した次第です。
ビルド
もちろん Visual Studio 2019 (x86) がセットアップ済なのは前提ですね。
まずは、こちらから 7-Zip のソースコードをダウンロードします。
https://sevenzip.osdn.jp/download.html
作業場所へ解凍し、.\CPP\7zip
へ移動します。
※ ソースは .7z 形式なのでとりあえず x86 版の 7-zip を使用して展開します。
コマンド ウィンドウを立ち上げます。
※ Explorer で目的のフォルダを表示して Shift + 右クリック
→ コマンド ウィンドウをここで開く
が楽ですかね?
Visual Studio 2019 のインストール先がデフォルトならば
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_arm64
と、打ち込んで実行させて、ARM64 用のツールセット環境を準備します。
なお、vcvarsall.bat
の詳しい使用方法は以下のドキュメントが参考になると思います。
コマンド ラインから Microsoft C++ ツールセットを使用する
あとは、
nmake
と、打ち込んで実行させれば、時間はかかりますが大きなエラーもなく無事ビルドされました。
インストール
きちんと調べればインストールスクリプトなんかもありそうですが、今回は手抜きをして出来上がった .exe や .dll 等をとりあえず手動で集めました。(;^_^A
ファイルの場所は各モジュールフォルダ下の arm64 フォルダにあります。
※ x64 版のファイル構成を参考に
・ Lang
フォルダ以下 → x64 版からコピペ
・ readme.txt
→ x64 版からコピペ
・ License.txt
→ x64 版からコピペ
・ History.txt
→ x64 版からコピペ
・ 7-zip.chm
→ x64 版からコピペ
・ 7-zip32.dll
→ x64 版からコピペ
・ 7zFM.exe
→ .\CPP\7zip\Bundles\Fm\arm64
からコピペ
・ 7z.dll
→ .\CPP\7zip\Bundles\Format7zF\arm64
からコピペ
・ 7z.sfx
→ .\CPP\7zip\Bundles\SFXWin\arm64
からコピペ
・ 7zCon.sfx
→ .\CPP\7zip\Bundles\SFXCon\arm64
からコピペ
・ 7z.exe
→ .\CPP\7zip\UI\Console\arm64
からコピペ
・ 7zG.exe
→ .\CPP\7zip\UI\GUI\arm64
からコピペ
・ 7-zip.dll
→ .\CPP\7zip\UI\Explorer\arm64
からコピペ
動作確認
一応、今自分が使用している範囲では ARM64 版 7-zip に不具合は出ていません。
オプション等の設定も、7zFM.exe
を 管理者として実行
で立ち上げれば、シェルコンテキストメニュー
の設定も大丈夫でした。
とはいえ、フルに検証ができているわけではないので、早く公式から ARM64 版が配布されるようになるといいですね。