我想开发将在Windows上运行并与Windows OS API交互的haskell代码,但我想在linux机器上进行。我该如何做到这一点?我可以在Windows机器上编译并且可以工作,但不能在Linux机器上编译。 Haskell可以使用LLVM后端,不是吗?我可以使用LLVM来完成此任务吗?或者以某种方式与MinGW合作?
答案 0 :(得分:7)
我尝试了许多可能性,包括GHC on Wine(虽然很多通知宣称它“开箱即用”),但对我来说并不适用。
对于交叉编译,一个问题在于让GHC找到你的C库和DLL(对于windows)。模板Haskell也会让你头疼(因为它需要加载linux库,然后编译为windows)。
我从未设法妥善解决这些问题。
最后,我选择在Windows VM上安装GHC,现在我使用脚本将内容推送到repo,通过SSH连接到windows机器,拉,清理,重新编译和测试,所有都是从linux CLI并向我提供有关Windows上发生的事情的反馈。
编辑:我没有提供这个答案,试图阻止任何人尝试更聪明的事情。我对真正的交叉编译也很感兴趣,如果有人有一个很好的解决方案,我会全力以赴。我的替代方法总是有效,但它真的很痛苦,不得不为此启动一个VM。此外,它意味着每个架构每个操作系统使用一个VM,这非常重。