(注意:我只是用作ffmpeg
示例,我经常对其他程序也有同样的疑问)
我有一个编译脚本,ffmpeg
支持一些非标准功能。现在我想在其他几台机器上使用该编码器。只需复制/usr/local/bin/ffmpeg
可执行文件就可以了吗,还是我应该在其他机器上运行该构建脚本?
- 编译中是否可能存在任何依赖于硬件的优化?
- 除了可执行文件本身和我能找到的任何内容之外,是否还有可能存在任何我也需要复制的隐藏依赖项
ldd
?
答案1
是的,是的:)
如果您希望编译后的二进制文件能够在多台机器上运行,则必须以与这些机器的体系结构和设置(库方面)相匹配的方式进行编译。这通常意味着:
- 静态链接所有可以链接的内容
- 发送二进制文件所需的库
- 32 位的东西可以在 64 位的机器上运行,但反过来不行
所以,如果您不想考虑它是否可以运行或者不会运行:请在您希望它运行的机器上编译并链接二进制文件。