【发布时间】: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 库,并且完全静态会引发分段错误。