-bash: ./ex1: バイナリを実行できません: Exec 形式エラー (Windows 10 Store でインストールされた Ubuntu、64 ビット)

-bash: ./ex1: バイナリを実行できません: Exec 形式エラー (Windows 10 Store でインストールされた Ubuntu、64 ビット)

いくつかのアセンブリから始めようとしていますが、最初からこのエラーが発生します。詳細は次のとおりです。 (動画以降)ファイルを直接作成したので問題ありません。

    global _start
    _start:
            mov eax, 1
            mov ebx, 42
            int 0x80

非常に基本的です。組み立てて接続します(

nasm -f elf32 ex1.asm -o ex1.o 

続いて

ld -m elf_i386 ex1.o -o ex1

各ステップの終了ステータスを確認するには、echo $?を使用してください。よく組み立てられ、接続されています。この文書は以下を提供します。

ex1: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped

私のプロセッサは64ビットAMD Ryzen 3 2200Gで、Win10ホストとUbuntuも64ビットです(私が知っている限り、64ビット環境で32ビットバイナリを実行することは問題ではありません。そうですか?)。私は32から64を実行しようとしていることについて議論したり、破損したインポートやアーキテクチャの非互換性(ARM用の組み立てなど)、またはより複雑な問題について話している多くの記事を読んでいます。これは非常に簡単で、すべての意図と目的のために簡単に機能する必要があります。しかし、私が試してみると

-bash: ./ex1: cannot execute binary file: Exec format error

Windows 10 Store、64ビット経由でインストールされたUbuntu。

どんな提案がありますか?

ベストアンサー1

コメントですでに指摘したように、Linux用のWindowsサブシステム(WSL)で実行されているUbuntuの上のnasmアセンブリの問題に対する答えは、WSL2にアップグレードすることです。この問題が発生した場合は、以下を参照してください。

  • Windows 10 バージョンが 2004 より前のバージョンの場合は、まず更新する必要があります。
  • WindowsおよびWSLの更新は管理者として完了する必要があります。

ゲームをプレイしている間はあまりにも多くのリンクを使用していますが、すべて覚えているわけではありません。しかし、最近、次のような問題が発生しました。

https://www.youtube.com/watch?v=loC7VfgRT-I

人々は最初から始めるのが便利だと思うかもしれません。

おすすめ記事