通常最好在要执行的同一台机器上进行编译吗?

通常最好在要执行的同一台机器上进行编译吗?

(注意:我只是用作ffmpeg示例,我经常对其他程序也有同样的疑问)

我有一个编译脚本,ffmpeg支持一些非标准功能。现在我想在其他几台机器上使用该编码器。只需复制/usr/local/bin/ffmpeg可执行文件就可以了吗,还是我应该在其他机器上运行该构建脚本?

  • 编译中是否可能存在任何依赖于硬件的优化?
  • 除了可执行文件本身和我能找到的任何内容之外,是否还有可能存在任何我也需要复制的隐藏依赖项ldd

答案1

是的,是的:)

如果您希望编译后的二进制文件能够在多台机器上运行,则必须以与这些机器的体系结构和设置(库方面)相匹配的方式进行编译。这通常意味着:

  • 静态链接所有可以链接的内容
  • 发送二进制文件所需的库
  • 32 位的东西可以在 64 位的机器上运行,但反过来不行

所以,如果您不想考虑它是否可以运行或者不会运行:请在您希望它运行的机器上编译并链接二进制文件。

相关内容