4

我正在尝试使用SoX使我创建的音频文件变慢,尽管我可以轻松地在我经常使用的 linux 机器上编译源文件,但我需要将二进制文件传输到另一台具有有限权限和内存的 linux 机器。我试图将二进制文件从我机器上的 usr/local/bin 文件夹复制到另一台,但它找不到函数引用。

是否有一种标准方法来编译没有依赖项的二进制文件,如果没有,我如何设置 SoX 二进制文件,以便当我在临时文件夹中只有写权限时它可以看到正确的依赖项?

4

2 回答 2

3

您可以编译,将-static标志添加到Makefile. 但请注意glibc两个(或更多)Linux 工作站之间的版本差异。您要确保在具有较旧(或最旧)内核的工作站上进行编译(或针对),否则您的二进制文件可能由于对较新内核的依赖性而无法工作,而较旧的 Linux 安装无法满足这一要求。所以:基本上,在你最旧的机器上编译以获得更好的结果。

于 2012-01-11T07:53:48.907 回答
2

生成没有依赖关系的可执行文件最重要的是该可执行文件将使用的所有库的静态版本。通常,库也是共享的,这意味着如果它们需要调用另一个库的函数,它们会使用共享链接。为了不获得二级依赖项,您需要静态编译所有必需的库。

于 2012-01-11T07:54:18.720 回答