Почему на X86-64 Ubuntu 20.04 мой 32-разрядный исполняемый файл не работает?

Я пытаюсь создать 32-разрядный исполняемый файл (чтобы увидеть, работает ли он быстрее) на x86_64 Ubuntu 20.04, работающем на WSL в Windows 10. Если я создам тот же код без параметра -m32 в g ++ , результат будет запущен. Если я построю его с помощью -m32, этого не произойдет. Вот полная последовательность:

jon@2014Laptop:~/projects/KSolve$ uname --m
x86_64
jon@2014Laptop:~/projects/KSolve$ g++ -m32 -g speeder.cpp Game.cpp KSolve.cpp -I. -o speeder
jon@2014Laptop:~/projects/KSolve$ file speeder
speeder: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV),
 dynamically linked, interpreter /lib/ld-linux.so.2, 
 BuildID[sha1]=3212c37b68b4eb6aec34e957739275dc272ecb86, for GNU/Linux 3.2.0,
 with debug_info, not stripped
jon@2014Laptop:~/projects/KSolve$ ./speeder
-bash: ./speeder: cannot execute binary file: Exec format error

jon@2014Laptop:~/projects/KSolve$
0
задан 12 June 2020 в 22:21

1 ответ

Похожий вопрос был задан в stackoverflow, в принятом ответе говорилось, что WSL не поддерживает 32-битные двоичные файлы. Но позже Фруш сказал, что можно использовать qemu.

0
ответ дан 24 July 2020 в 09:35

Другие вопросы по тегам:

Похожие вопросы: