简单来说,我即将发布一个用OCaml编写的应用程序,原本计划通过源代码分发。但问题是,OCaml开发系统既不轻便也不常见,因此我希望还可以以二进制方式发布到各种操作系统上。
- 对于Windows来说,没有问题,因为我可以通过cygwin编译并使用所需的dll文件进行分发
- 对于OS X来说,也没有问题,因为我可以轻松地编译和分发它(从我尝试过的情况来看,没有外部依赖)
但是,当涉及到Linux时,问题就来了,因为我不知道最佳的编译和分发方法。程序本身不依赖于任何东西(一切都是静态链接的),但如何覆盖多个发行版?
我有一个安装在amd64架构上的Ubuntu服务器10虚拟机,我使用这台机器在Linux下测试该程序,一切正常。当然,如果我尝试将二进制文件移动到32位的Ubuntu上,它就会停止工作,而且我也没能尝试不同的发行版……有什么技巧可以解决这种问题吗?(这似乎是经常出现的问题)
例如:
- 我能否从同一台机器上编译32位和64位的二进制文件?
- 在Ubuntu下编译的二进制文件是否也可以在其他发行版上运行?
- 想要覆盖尽可能多的发行版,应该考虑哪些“分支”?