我正在尝试使我使用SoX创建的音频文件变慢,虽然我可以很容易地在我经常使用的linux机器上编译源文件,但我需要将二进制文件传输到另一台权限和内存有限的linux机器上。我尝试将二进制文件从我的机器上的usr/local/bin文件夹复制到另一台机器上,但它找不到函数引用。
有没有一种标准的方法来编译没有依赖关系的二进制文件,如果没有,我如何设置SoX二进制文件,使它在我只有临时文件夹中的写权限时看到正确的依赖关系?
发布于 2012-01-11 15:53:49
您可以通过向Makefile中的编译选项添加-static标志来进行编译。但是要注意您的两个(或更多) glibc工作站之间的任何版本差异。您希望确保在具有较旧(或最旧)内核的工作站上进行编译,否则您的二进制文件可能会由于对较新内核的依赖而无法工作,而较旧的Linux安装无法满足这一要求。所以:基本上,为了得到更好的结果,在你最老的机器上编译。
发布于 2012-01-11 15:54:19
要生成没有依赖关系的可执行文件,最重要的是这个可执行文件将使用的所有库的静态版本。通常,库也是共享的,这意味着如果它们需要调用另一个库的函数,它们就会使用共享链接。为了不得到二级依赖,你需要静态编译所有需要的库。
https://stackoverflow.com/questions/8815457
复制相似问题