Недавно я сделал простую игру с использованием Unity 3d и обнаружил, что она работает на любой машине с Windows, просто копируя файлы и исполняемые файлы.

Мне было интересно, как это можно сделать, потому что я прочитал, что вы не можете сделать скомпилированную программу переносимой. Из-за архитектуры системы, версии Windows ... Вы должны скомпилировать для каждой машины.

Также мне было интересно, есть ли что-то подобное для машин с Linux.

И если кто-то может объяснить мне, что происходит при установке игры (что делает программа, если есть какая-то компиляция или только копирование файлов, задайте пути и проверяйте зависимости)

1 ответ1

2

Вы правы, программа должна быть скомпилирована для каждой конкретной архитектуры и операционной системы. Скомпилированные программы не переносимы между архитектурами или ОС.

К счастью, почти каждый компьютер имеет 32-битную архитектуру x86 или 64-битную архитектуру x86_64 (которая совместима с x86). Кроме того, все версии Windows после и включая XP в основном совместимы, так как все они основаны на одном и том же ядре. Это позволяет скомпилированному для x86_64 и Windws запускаться на любой машине с 64-битными окнами, а программу, скомпилированную для x86-окон, можно запускать практически на любой машине с Windows. Это, конечно, при условии, что все надлежащие dll на месте.

То же самое верно для Linux, так как все версии Linux должны быть совместимы.

При установке игры обычно просто копируются игровые файлы и библиотеки в определенный каталог. Иногда он устанавливает некоторые переменные, необходимые для запуска игры. Программа установки практически никогда не компилирует исходный код перед установкой, хотя некоторые программы (обычно для Linux) распространяются так, что пользователь должен сам скомпилировать их перед установкой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .