@gth-other

Будет ли скомпилированный код C++ работать на всех архитектурах процессора?

Пишу прикладную софтину. Появился вопрос будет ли скомпилированный бинарник работать на всех архитектурах процессора. Вроде бы простой вопрос, а в гугле найти не могу (проверить самому тоже нет возможности). Иными словами, если у меня amd64, то будет ли скомпилированный на моей оси код работать на архитектурах ix86 и наоборот.
  • Вопрос задан
  • 190 просмотров
Решения вопроса 2
@res2001
Developer, ex-admin
Даже бинарник для х64 не будет работать под х32, что уж говорить о принципиально разных архитектурах.
В исполняемом файле содержатся машинные команды для конкретной архитектуры процессора.
Для другой архитектуры нужен другой исполняемый файл.
То же самое актуально и для разных ОС (бинарники для линукс и винды не совместимы). Но, обычно, есть варианты запустить бинарник от другой ОС - виртуализация, wine в линукс, WSL в винде.

Более того, например, если у вас приложение х64 и вы используете какую-то специфическую фичу процессора, которая есть только в определенных моделях процессора, то приложение будет корректно работать только на процессорах поддерживающих эту фичу. Если нужно, в приложении можно предусмотреть проверку процессора и если фича не поддерживается использовать какую-то универсальную реализацию.
Ответ написан
Комментировать
xez
@xez
TL Junior Roo
Очевидно же, что нет
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@kaka888
C, C++, Qt, Python Flask, MySQL, Lua
Архитектура AMD64 является частным случаем архитектуры x86. Если скомпилировали под архитектуру AMD64, то на 32-битных работать не будет. А если скомпилировали для 32-битных, то будет работать и на 32, и на 64-битных
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы