我想构建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”一些其他函数。
所以我的问题是。有没有办法构建屏幕静态(因为我实际上不能相信没有),如果不是有一个很好的替代品可以构建静态?
答案 0 :(得分:2)
有没有办法构建屏幕静态
当然:只是忽略警告,瞧,你有一个完全静止的screen
。
现在,当移动到具有不同版本GLIBC
的系统时,该全静态屏幕将无法工作,因此无用于此目的。
一般而言,与流行的看法相反,在UNIX系统上,完全静态二进制文件 可移植性比动态二进制文件更便携。你建立这种全静态二进制文件的愿望很可能是错误的。
如果没有可以构建静态的好替换?
您可以尝试使用其他libc
实施,例如uClibc
或dietlibc
,这些实施可能不会对完全静态二进制文件施加此类限制。