Некоторые программы, вы можете просто перекомпилировать для новой платформы, без проблем. Если это очень простая программа, не использующая ничего конкретного для этой ОС, вам, возможно, удастся сойти с рук. По сути, взятие исходного кода, перемещение его в другую ОС и использование там компилятора. Однако даже если есть определенный код, вы можете использовать флаги времени компиляции или константы в своем коде, чтобы заставить компилятор работать по-другому. Я разбираюсь в синтаксисе C ++, но думаю, это должно показать, что я имею в виду:
#if OS == WINDOWS
root = "C:\\";
#elseif OS == LINUX
root = "/";
#endif
Другой способ - запустить программу на виртуальной машине, например на Java. Эта виртуальная машина будет работать на разных платформах, и ваш исполняемый файл должен иметь возможность беспрепятственно работать с чем угодно, используя ее. Возможно, вам придется выполнить перекомпиляцию с несколькими небольшими изменениями, если был специфичный для ОС код, но если вы собираетесь с самого начала на порт, то вам, вероятно, не стоит беспокоиться об этом.
Третий способ - это сочетание двух, и, если я правильно помню, то, что делает Firefox. Большая часть кода остается той же самой, но она использует базу для запуска, которая скомпилирована специально для этой ОС, которая определяет разные вещи, создает определенные типы переменных, такие как nsInt
(некоторое время назад, с тех пор как я посмотрел в коде FF, так что я, скорее всего, ошибаюсь, но я знаю, что перед ними стоит указать ns
, который вы бы использовали вместо int
, так как он был бы специально разработан таким же образом на разных платформах.
Когда вы компилируете, для базы выбирается правильная платформа, тогда вся программа компилируется с использованием этого.