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