【问题标题】:Static Compliation of Node JSNode JS的静态编译
【发布时间】:2018-12-12 08:13:12
【问题描述】:

我已经构建了部分静态的 Nodejs。但是当我在我的机器上执行 NodeJS 时,我得到了以下错误。

./节点

./node: /lib/ld.so.1: 找不到版本GLIBC_2.22' not found (required by ./node) ./node: /lib/tls/libc.so.6: versionGLIBC_2.15'(./node 需要) ./node: /lib/tls/libc.so.6: 找不到版本GLIBC_2.4' not found (required by ./node) ./node: /lib/tls/libc.so.6: versionGLIBC_2.7'(./node 需要) ./node: /lib/tls/libpthread.so.0: 找不到版本“GLIBC_2.6”(./node 需要)

但我拥有 NodeJs Exe 本身中的所有库。为什么要在本地搜索图书馆?

-> 字符串节点 | grep GLIBC_2 GLIBC_2.2 GLIBC_2.22 GLIBC_2.1 GLIBC_2.0 GLIBC_2.1.3 GLIBC_2.3.2 GLIBC_2.15 GLIBC_2.2.4 GLIBC_2.1.2 GLIBC_2.4 GLIBC_2.3 GLIBC_2.3.4 GLIBC_2.7 GLIBC_2.6 GLIBC_2.3.3

注意: 完全静态的编译会在相同的场景下产生分段错误。

【问题讨论】:

  • /lib/ld.so.1 对于 glibc 系统来说看起来很不寻常。你到底在建什么?
  • 嘿,我的目标是构建 NodeJS,所有必需的库都是静态链接的(这意味着它不应该在本地路径中搜索库)。为此,我尝试了 --partly-static 和 --fully-static。结果,当使用 --partly-static 构建 NodeJs 时,它会在“/lib/”目录中搜索 LIBC 库,并且完全静态会引发分段错误。

标签: node.js static glibc


【解决方案1】:

试试这些步骤:

运行apt-get update

更新包数据库

apt-cache policy libc6

这将为您提供可以使用ldd --version显示的安装版本

apt-get install libc6安装新版本

【讨论】:

  • 嘿,由于某些限制,我无法安装/升级 libc。还有其他方法可以解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-05
  • 2017-10-10
  • 2010-11-25
  • 1970-01-01
  • 2018-11-08
  • 1970-01-01
  • 2011-01-28
相关资源
最近更新 更多