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

wim*_*wim 6 compile build packages

(注意:我只是ffmpeg举个例子,我经常想知道其他程序也有同样的事情)

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

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

aki*_*ira 4

是的,是的:)

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

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

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