“二进制安装”和“从源代码编译安装”有什么区别?哪个更好?

lmi*_*asf -1 installation binaries

我想为 Ros(机器人操作系统)安装一个驱动程序,我有两个选项:二进制安装和从源代码编译和安装。我想知道哪种安装方式更好,每种方式的优缺点是什么。

Rus*_*Uhl 5

来源:AKA 源代码,通常在某种 tarball 或 zip 文件中。这是 RAW 编程语言代码。您需要某种编译器(用于 java 的 javac,用于 c++ 的 gcc 等)来创建您的计算机然后运行的可执行文件。

好处:

  • 你可以看到源代码是什么意思....
  • 您可以编辑最终结果程序以使其表现不同
  • 根据你在做什么,当你编译时,你可以启用某些优化,这些优化将在你的机器上运行,并且只在你的机器上运行(或一个完全喜欢的机器)。例如,对于某种 gfx 渲染软件,您可以编译它以启用 GPU 支持,这将提高渲染速度。
  • 您可以为不同的操作系统/芯片组创建一个应用程序版本(请参阅下面的二进制文件)

缺点:

  • 您必须安装编译器
  • 您需要手动安装所有必需的库,这些库也经常需要编译(并且需要安装它们的库等)。这可以轻松地将一个 30 秒的快速命令变成一个多小时的项目。
  • 有许多事情可能会出错,如果您不熟悉各种错误的含义,在线寻找支持可能会非常困难。

二进制:这是实际运行的程序。这是从源代码编译时创建的可执行文件。它们通常内置了所有必要的库,或者根据需要安装/部署它们(取决于应用程序的编写方式)。

好处:

  • 它可以运行了。如果您有为您的处理器和操作系统设计的二进制文件,那么您很可能可以运行该程序,并且一切都会在第一次运行。
  • 配置少。您不必设置一大堆配置选项即可使用该程序;它只是使用通用的默认配置。
  • 如果出现问题,在线查找帮助应该会更容易一些,因为二进制文件是预编译的....其他人可能正在使用它,这意味着您正在使用与他们完全相同的程序,而不是针对它们进行优化的程序你的系统。

缺点:

  • 您无法查看/编辑源代码,因此无法针对您的特定应用程序进行优化或调整。此外,您并不真正知道该程序将要做什么,因此可能会有令人讨厌的惊喜等着您(这就是 Antivirus 有用的原因……尽管在 linux 系统上不太必要)。
  • 您的系统必须与二进制兼容。例如,您无法在 32 位操作系统上运行 64 位应用程序。您不能在旧的基于 PowerPC 的 G5 Mac 上运行适用于 OS X 的 Intel 二进制文件。

总之,哪个“更好”取决于您。只有您可以决定无论您要做什么,哪一个是必要的。在大多数情况下,使用二进制文件会很好,并且给您带来的麻烦最少。但是,有时,即使仅作为文档,也可以使用源代码。