使用 LDFLAGS="-static" 构建屏幕

build Screen with LDFLAGS="-static"

我想构建 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 上得到解答。 因此,如果我理解这一点,就不可能在静态链接二进制文件中使用 "getpwnam" 和 glibc 之外的一些其他函数。

所以我的问题是。有什么方法可以构建静态屏幕(因为我真的不敢相信没有),如果没有,是否有一个很好的替代品可以构建静态?

Is there any way to build screen static

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

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

一般来说,与流行的看法相反,在 UNIX 系统上,完全静态的二进制文件 比动态二进制文件的可移植性差。您构建这种完全静态二进制文件的愿望很可能被误导了。

if not is there a good replacement which can be build static?

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