Некоторые программы для Windows могут быть скомпилированы только на Linux посредством кросс-компиляции, если зависят от определённых библиотек или других зависимостей, недоступных на целевой платформе. 1
Кросс-компиляция — это процесс сборки программы на одной платформе (хост) для выполнения на другой платформе (целевой). 1 Для этого используется кросс-компилятор, который работает на основной платформе (в данном случае Linux), но генерирует код для целевой платформы (Windows). 1
Например, для сборки программ с помощью GNU toolchain на Windows часто используют проекты Cygwin и MinGW + MSYS. 2 Cygwin предоставляет большую часть POSIX API в виде библиотеки, что позволяет собирать программы из UNIX без портирования, если только им не требуется семантика UNIX. 2
Также стоит учитывать, что кросс-компиляция не всегда лучший вариант, и в некоторых случаях может быть проще собрать программу изначально на целевой платформе. 1