2013-11-28 4 views
-1

У меня всегда были эти вопросы, на мой взгляд, прежде чем начать обучение C++:Крест Win32 и Win64 приложения

1 Может приложение, которое составляется на x86 компьютера запуска на x64 компьютере?

2- Может ли приложение, скомпилированное на компьютере x64, запускаться на компьютере x86?

3- Есть ли разница?

4 Если 1 и 2 - да, то почему некоторые приложения имеют разные загрузки для каждого os-бита, и почему некоторые библиотеки, которые я получил как lua52, имеют версию x64 и x86, которые работают только с указанными os и ошибками на разных Операционные системы?

EDIT:

5- Могу ли я собрать свои приложения в x86, если моя ОС x64?

ответ

5

Хорошо, давайте попробуем рассмотреть эти пункты в свою очередь

  1. Да, x86 компьютер может переходить компилировать x64 кода (это обычная практика). Кроме того, операционная система на базе x64 может иметь уровень эмуляции для запуска кода x86 (это то, что Windows делает для обратной совместимости)

  2. Да, компьютер x64 может перекрестно скомпилировать код x86 (также распространенная практика). Теоретически, операционная система на основе x86 может иметь уровень эмуляции для запуска кода x64 (хотя я не считаю, что это делается на практике)

  3. В случае кросс-компиляции не будет никакой разницы между x64, скомпилированный на компьютере x64, против того же кода, скомпилированного на компьютере x86. Если на x64 запущен уровень эмуляции для запуска кода x86, то он будет менее эффективным, чем запуск собственного кода x64. Если вы хотите поддерживать системы x86, вам необходимо предоставить версию x86.

  4. См. (3) - Как правило, лучше обеспечить «родные» версии.

  5. Да. - см. (1) и (2)

+1

+1 Этот ответ более полный и точный, чем мой удаленный ответ. – deepmax

Смежные вопросы