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