我看到的 Windows 桌面专有软件通常以静态编译的二进制文件形式分发,可能带有一些 dll,并且所需的数据文件捆绑在解压到 Program Files 文件夹中的包中。这是可能的,因为 Windows 应用程序开发人员知道他们的用户都将拥有一台配备 Intel 或 AMD 的 x86_64 CPU 并安装了 Windows XP 或更高版本操作系统的计算机,这些计算机将毫无抱怨地运行 Visual-Studio 编译的二进制文件。
那么,我能在 Unix 世界中期待类似的事情吗?我经常发现“自己编译”的程序分发方式对于简单的目的来说并不方便。比如说,我想请一位朋友在 Linux 机器上测试我的程序。除了他们是否有 Linux 计算机之外,我不想要求他们安装所有(可能是 10 个或更多)依赖项。一个拥有不错的包管理器的发行版可以非常简单地完成这项工作,但并非所有版本的 Linux 都有一个好的包管理器。此外,当手动运行“make install”时,通常几乎不可能卸载。
通常是否可以在 Linux 中分发软件二进制文件,仅期望它至少在安装了 x86_64 CPU 和 Linux 操作系统的计算机上运行良好?例如,作为 zip 文件夹分发,用户可以简单地解压缩并双击“start”或键入“./start”。
答案1
是的,如果您使用指定的确切编译器和库版本进行构建Linux 标准库。几乎没有人这样做,因为这意味着将自己限制在几年前的库中,即使这样,您也只能获得少量的基本系统库,并且仍然必须捆绑大量依赖项。