Подтвердить что ты не робот

Я разрабатываю 64-битное приложение. Возможно ли запустить 64-битное приложение на 32-битной ОС?

Я разрабатываю 64-битное приложение. Возможно ли запустить 64-битное приложение на 32-разрядной ОС?

Обратите внимание, что этот вопрос является общим и не относится к ОС Windows. Infact приложение само по себе переносится через ОС.

4b9b3361

Ответ 1

(Мы будем говорить о AMD64 (== EM64T == x86_64) и x86 для 64-разрядных и 32-разрядных соответственно )

Вы можете запустить код AMD64 на процессорах x86 только путем эмуляции (например, qemu) или некоторых видов виртуализации (я считаю, что VMWare может поддержка 64-битной гостевой ОС на 32-битной ОС хоста на 64 разрядный процессор). Однако это означает, что я использую 64-битную ОС в качестве гостя для эмуляции или виртуализации, которые, как я полагаю.

Как вы разрабатываете приложение, не должно быть слишком сложно разрабатывать как 32-битные, так и 64-битные сборки вашего кода.

Для Mac вы можете отправить один бинарный файл, в котором есть оба типа кода, или Mac OSX может запускать ваш 64-битный двоичный файл в 32-битном ядре (только на процессоре с поддержкой x86_64). Для Windows и Linux вам придется либо отправить отдельные инсталляторы, либо отправить какой-нибудь умный установщик, который будет выбирать правильные файлы во время установки. Для Linux есть проект для добавления возможности запуска кода AMD64 на ядре x86 на процессоре AMD64 - http://linuxpae64.sourceforge.net/ - но он не выглядит как будто он очень далеко от ядра mainline.

Есть ли какая-то конкретная причина, по которой вы хотите создать только 64-битные двоичные файлы?
Если он получит доступ к дополнительной памяти, тогда 32-битная ОС не сможет предоставить вам дополнительную память. Если ему не придется тестировать две разные версии, то просто создайте 32-битную версию, она будет работать на Windows AMD64 и большинство дистрибутивов Linux AMD64 без проблем.

Ответ 2

В окнах используется только виртуальная машина.

В OS X приложения на 64 бита запускаются изначально (спасибо Стивену)

Ответ 3

Совсем наоборот, бит, я не думаю, что вы можете запустить 64-битное приложение на 32-битной ОС, вы можете использовать виртуальную машину или какую-то виртуализацию.

Ответ 4

Это более легкое решение, чем попытка запустить 64-разрядную программу в 32-разрядной ОС (включая выполнение через эмулированную или виртуальную 64-битную платформу поверх 32-разрядной ОС): перекомпилировать ее для 32-разрядная ОС.

Когда вы сказали, что он переносится через разные ОС, вы также имели в виду не 64-битные ОС? Я не мог назвать что-то портативное без квалифицированного "только 64-битного", если это было так, и я думаю, что многие (возможно, даже большинство?) Программистов также ожидают, что квалификация, по крайней мере в настоящее время.

Ответ 5

возможно использование qemu в режиме мягкой эмуляции

Ответ 6

Нет.

См. часто задаваемые вопросы по Microsoft:

Термины 32-разрядные и 64-разрядные способ компьютерного процессора (также называемый CPU), обрабатывает информацию. 64-разрядная версия Windows обрабатывает большое количество оперативной памяти (ОЗУ) более эффективно, чем 32-разрядный система. Для получения дополнительной информации перейдите к A описание различий между 32-разрядные версии Windows Vista и 64-разрядные версии Windows Vista в Интернете.

Понимайте разницу между 32-битными и 64-битными, и вы поймете, почему это невозможно.

Ответ 7

Смотрите этот (при условии, что вы используете Windows):

Если программа специально разработана для 64-разрядной версии Windows, она не будет работать на 32-разрядной версии Windows. (Однако большинство программ, предназначенных для 32-разрядной версии Windows, будут работать в 64-разрядной версии Windows.)

Драйверы устройств, предназначенные для 64-разрядной версии Windows, не будут работать на компьютерах под управлением 32-разрядной версии Windows. Чтобы узнать, как проверить наличие драйверов, см. "Обновление драйвера для оборудования, которое не работает должным образом" или перейти на веб-сайт производителя устройства.

Ответ 8

В Windows, нет. На OS X, да. Я не знаю, что такое положение дел в Linux.

Фактически Snow Leopard загружается в 32-битное ядро, но по умолчанию компилирует приложения по 64-разрядной версии, поэтому это довольно часто встречается в OS X.

Ответ 9

64-разрядное приложение не запускается в 32-разрядный процессорный период

64-разрядное приложение использует регистр шириной 64 бит. Это просто не подходит.