Как перекрестно скомпилировать программу haskell на Linux-машине с целью Windows (PE)?

Я хотел бы разработать код haskell, который будет работать на окнах и взаимодействовать с API-интерфейсами Windows, но я хотел бы сделать это на Linux-машине. Как это сделать? Я могу скомпилировать на машине Windows, и это работает, но не на Linux-машине. Haskell может использовать бэкэнд LLVM, не так ли? Могу ли я использовать LLVM для этого? Или как-нибудь работать с MinGW?

Ответ 1

Я пробовал много возможностей, включая GHC on Wine (не работал у меня, несмотря на то, что многие уведомления рекламируют, что он работает "из коробки" ).

Для кросс-компиляции одна проблема заключается в том, что GHC находят ваши библиотеки C и библиотеки DLL (для Windows). Шаблон Haskell также даст вам головные боли (потому что ему нужно загружать библиотеки linux, но затем компилировать для Windows).

Мне никогда не удалось обойти эти проблемы должным образом.

В конце концов, я выбрал установку GHC на виртуальной машине Windows, и теперь я использую script, чтобы перенаправить материал на репо, подключиться к машине Windows через SSH, вытащить, очистить, перекомпилировать и протестировать, все выполнено из командной строки linux и давая мне отзывы о том, что происходит на окнах.

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