用LDFLAGS =“ - static”构建屏幕

时间:2015-01-14 16:23:42

标签: linux compilation static glibc gnu-screen

我想构建screen静态,以便我可以在嵌入设备上将其用作独立二进制文件。

screen-4.2.1# ./configure LDFLAGS="-static" && make

我收到了这个警告:

/screen.c:933: warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

通过here回答了这个原因。 因此,如果我理解这一点,就不可能在静态链接二进制文件中使用glibc中的“getpwnam”一些其他函数。

所以我的问题是。有没有办法构建屏幕静态(因为我实际上不能相信没有),如果不是有一个很好的替代品可以构建静态?

1 个答案:

答案 0 :(得分:2)

  

有没有办法构建屏幕静态

当然:只是忽略警告,瞧,你有一个完全静止的screen

现在,当移动到具有不同版本GLIBC的系统时,该全静态屏幕将无法工作,因此无用于此目的。

一般而言,与流行的看法相反,在UNIX系统上,完全静态二进制文件 可移植性比动态二进制文件更便携。你建立这种全静态二进制文件的愿望很可能是错误的。

  

如果没有可以构建静态的好替换?

您可以尝试使用其他libc实施,例如uClibcdietlibc,这些实施可能不会对完全静态二进制文件施加此类限制。