在Linux中,下载了一个程序源,并希望它是静态链接的。 我有一个巨大的Makefile
./configure make
编译。 prehpes这是有点太笼统不问,但我怎样才能使二进制静态链接? 谢谢。
编辑:这样做的原因是要确保二进制文件没有依赖关系(或者至less尽可能less),使得可以在任何基于Linux的计算机上运行,即使没有互联网连接,也没有更新的Linux。
大多数autoconf
生成的configure
脚本将允许您进行静态构建:
./configure --enable-static make
如果这不起作用,您可以通过LDFLAGS
传递链接器标记,如下所示:
./configure LDFLAGS=-static
是的,你需要编辑make文件,并在链接期间添加-static参数给gcc。
如果你不能编译一个静态的二进制文件,我用Statifier已经有了很好的结果。
我假设它使用gcc来编译一系列c程序,但是你必须在Makefile中查找。
如果是这样的话,可以调整makefile中的gcc行来进行静态链接,尽管取决于程序的结构,这可能是一个复杂的变化。 看看man gcc看看这是怎么完成的。
我有兴趣知道为什么你是静态链接。 你有没有考虑使用prelinking?
您应该知道,如果所有组件都不是GPL,则可能会出现许可证问题。