【问题标题】:build Screen with LDFLAGS="-static"使用 LDFLAGS="-static" 构建屏幕
【发布时间】:2015-03-12 22:00:52
【问题描述】:

我想构建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”和其他一些函数。

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

【问题讨论】:

    标签: linux compilation static glibc gnu-screen


    【解决方案1】:

    有什么方法可以构建静态屏幕

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

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

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

    如果没有,是否有一个可以构建静态的好的替代品?

    您可以尝试使用替代的libc 实现,例如uClibcdietlibc,这可能不会对完全静态的二进制文件施加这样的限制。

    【讨论】:

    • 到目前为止,我在忽略警告的情况下得到了合理的结果——它比不为我编译静态效果更好。当您说非静态更便携时-您能再解释一下吗?除了将二进制文件编译并复制到您需要它的系统之外,还有其他工作需要做吗?
    • @chrisputnam9 您可以提出一个单独的问题(可以免费提问)。
    猜你喜欢
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多