首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用gnu工具链编译无依赖关系的二进制文件的基础知识

问使用gnu工具链编译无依赖关系的二进制文件的基础知识
EN

Stack Overflow用户
提问于 2012-01-11 15:09:39
回答 2查看 1.9K关注 0票数 4

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

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

EN

回答 2

Stack Overflow用户

发布于 2012-01-11 15:53:49

您可以通过向Makefile中的编译选项添加-static标志来进行编译。但是要注意您的两个(或更多) glibc工作站之间的任何版本差异。您希望确保在具有较旧(或最旧)内核的工作站上进行编译,否则您的二进制文件可能会由于对较新内核的依赖而无法工作,而较旧的Linux安装无法满足这一要求。所以:基本上,为了得到更好的结果,在你最老的机器上编译。

票数 3
EN

Stack Overflow用户

发布于 2012-01-11 15:54:19

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8815457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档