web-dev-qa-db-ja.com

ARMでx86実行可能ファイルを実行することは可能ですか?

X86-64バイナリであるNavicatをaarch64マシンにインストールしようとすると、「バイナリファイルを実行できません:Exec形式エラー」が発生します。

実行可能ファイルでfileを実行した結果は次のとおりです。

navicatess15-sqlserver-en.AppImage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.18, BuildID[sha1]=d629f6099d2344ad82818172add1d38c5e11bc6d, stripped

そして、これが私のuname -a

Linux penguin 4.19.98-08076-g24ab33fb8e14 #1 SMP PREEMPT Wed Apr 1 17:17:36 PDT 2020 aarch64 GNU/Linux

私のマシンでこの実行可能ファイルを実行する方法はありますか?

(これが違いを生むが、OP1プロセッサを搭載したSamsung Chromebook PlusでLinuxを実行している場合は同じ)

3
Svavinsky

各アーキテクチャは独自のハードウェア言語を話すため、もちろんARM CPUはネイティブでARMバイナリのみを実行できます。別のアーキテクチャでバイナリを実行する場合は、 an emulator 。最も有名なx86-64エミュレーターは qembochs です。

しかし、エミュレーションは非常に遅いため、時間に敏感なアプリケーションには適しておらず、最後の手段となるはずです。可能な場合はソースから再コンパイルするか、ARM代替ソフトウェアを見つける

5
phuclv

@phuclvの回答に同意します。 product page のように見えるものを見ると、自分でプラットフォーム用にコンパイルするためのソースコードにアクセスできないようです。

これは商用サポート付きの商用製品であるため、ソフトウェアの製造元に連絡してARM64 AppImageを提供するよう依頼するのが最善の方法です。彼らには、理由のためにAppImage配布フォーマットを選択する実用的な開発者がいるようです。 Go、Python、Javaまたは別のプラットフォームを適切にサポートする別の言語でコード化されている可能性があります。またはその逆が当てはまり、この世代の製品では他のプラットフォームをサポートすることが困難です。開発者は自分の製品が一部のユーザーによってどのように使用されているかを決して知ることはなく、ビジネス機会を失う可能性があります。

あなたができる最悪のことは、適切な人と話すのではなく、ハッカ的な回避策を使用することです。

私の仕事ではこれが常に見られます。コミュニケーションが取れない人々が現れ、彼らの要求が十分に処理されていないことを訴えます。私は問題を見て、同僚に尋ねると、結論に達します:"私たちはそれについて知りませんでした!"

どうぞ、どうぞ!正しいことをします! メーカーにお問い合わせください:

[あなたの製品]は使いたくない。 [デバイスを使用しています。 Chromebook]と[プラットフォームe.g. ARM64]。 [Linuxアプリ]の実行はサポートされていますが、ダウンロードオプションが見つかりません。

編集:もちろんです。コメントを残さずに私の回答に反対票を投じます。お尻の外観から頭を引き出し、Chromebook/Crouton/Crostiniの世界でうまくいかない多くのことを確認します。

0
LiveWireBT