Jac*_*ack 5 linux distribution cross-compiling
简而言之,我将发布一个用 OCaml 编写的应用程序,并且我计划通过源代码分发它。
问题是 OCaml 开发系统不是一个轻量级的东西,也不是那么常见的安装方式,所以我想以二进制方式为各种操作系统发布它。
当到达 Linux 时,问题出现了,因为我真的不知道哪种是编译和分发它的最佳方法。程序本身不依赖于任何东西(一切都是静态链接的),但是如何覆盖许多发行版?
我有一台采用amd64架构虚拟化的ubuntu服务器10,我用这台机器在Linux下测试程序,一切正常。当然,如果我尝试将二进制文件移动到 32 位 ubuntu,它就会停止工作,并且我无法尝试不同的发行版...是否有技巧来管理此类问题?(这似乎反复出现)
例如:
通常,您可以相对轻松地在 64 位计算机上生成 64 和 32 位二进制文件 - 即发行版通常在其编译器包中提供适当的支持,并且您可以实际测试您的构建。请注意,操作系统也需要是 64 位,而不仅仅是 CPU。
静态二进制文件通常在任何地方运行,并提供内核和 CPU 的足够支持 - 请注意您的编译器选项以确保这一点。它们是您兼容性的最佳选择。共享库可能是一个问题。为了解决这个问题,与共享库链接的二进制文件可以与这些库捆绑在一起,并在必要时使用加载器脚本运行。
您至少应该使用 dpkg 软件包瞄准 Debian/Ubuntu,使用 RPM 瞄准 Redhad/Fedora/Mandriva,再次使用 RPM 瞄准 SUSE/OpenSUSE(我分别提到这两种 RPM 情况,因为您可能需要为这些发行版“系列”生成单独的软件包) 。您还应该为其余部分提供 .tar.bz2 或 .run 安装程序。
您可以查看 Oracle for Java 和 VirtualBox 等提供的选项,了解他们如何提供软件。
| 归档时间: |
|
| 查看次数: |
3634 次 |
| 最近记录: |