使用不同的 glibc 版本制作 curl:未解决 GLIBC_PRIVATE
make curl with different glibc version: unresolved GLIBC_PRIVATE
分发glibc
版本是2.11.3。我把2.22版本编译成了/usr/glibc/
.
运行 make
对于新的 curl
版本 7.46 我收到此错误:
/usr/glibc/lib/libpthread.so.0: undefined reference to `__mktemp@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__tfind@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__tdelete@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__twalk@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__call_tls_dtors@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__madvise@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `memcpy@GLIBC_2.14'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__getrlimit@GLIBC_PRIVATE'
/usr/glibc/lib/libresolv.so.2: undefined reference to `__sendmmsg@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__ctype_init@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__h_errno@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__tsearch@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__libc_vfork@GLIBC_PRIVATE'
我确信这一定是新 glibc
版本的问题,但我的 linux 知识太薄弱,无法提供新 glibc
版本的正确路径。
我做错了什么?谢谢!
有几个问题:
glibc
2.22 - 分发版本为 2.11.3
openssl
1.0.2f - 分发版本是 0.9.8j [从 2009 年开始!]
curl
7.46.0 - 分发版本为 7.19.7
libmemcached
具有来自分发 的活动 sasl
版本
我在我的 CUDA 项目中使用了所有这些库,由于我想将所有这些库更新到最新版本,这些步骤是:
glibc
:构建到 /usr/glibc
openssl
:构建成/usr/glibc/openssl-curl/
。在 运行 export $LDFLAGS=-L/usr/glibc/lib
之前
curl
: 运行 ./configure --prefix=/usr/glibc/openssl-curl/ --with-ssl=/usr/glibc/openssl-curl/ --disable-ldap
- 非常重要: $LDFLAGS
必须在运行ning时为空configure
因为脚本将值添加到 $LD_LIBRARY_PATH
并且由于新的 glibc
和分发版本的版本不匹配所有程序都崩溃 segmentation fault
。之前make
又运行export $LDFLAGS=-L/usr/glibc/lib
.
- 对于我的项目,我还必须使用以下命令使用新的
glibc
版本重建 libmemcached
:./configure --prefix=/usr/local/libmemcached --disable-sasl
在 CUDA 中,我必须设置新库的路径,现在一切正常。为了加载新的 glibc
版本,设置链接器选项 -Wl,--rpath=/usr/glibc/lib
和 -Wl,--dynamic-linker=/usr/glibc/lib/ld-linux-x86-64.so.2
也很重要。
对于我的 linux 系统,我 不能 添加 /etc/ld.so.conf
路径 /usr/glibc/lib
否则整个系统会崩溃。
分发glibc
版本是2.11.3。我把2.22版本编译成了/usr/glibc/
.
运行 make
对于新的 curl
版本 7.46 我收到此错误:
/usr/glibc/lib/libpthread.so.0: undefined reference to `__mktemp@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__tfind@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__tdelete@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__twalk@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__call_tls_dtors@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__madvise@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `memcpy@GLIBC_2.14'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__getrlimit@GLIBC_PRIVATE'
/usr/glibc/lib/libresolv.so.2: undefined reference to `__sendmmsg@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__ctype_init@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__h_errno@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__tsearch@GLIBC_PRIVATE'
/usr/glibc/lib/libpthread.so.0: undefined reference to `__libc_vfork@GLIBC_PRIVATE'
我确信这一定是新 glibc
版本的问题,但我的 linux 知识太薄弱,无法提供新 glibc
版本的正确路径。
我做错了什么?谢谢!
有几个问题:
glibc
2.22 - 分发版本为 2.11.3openssl
1.0.2f - 分发版本是 0.9.8j [从 2009 年开始!]curl
7.46.0 - 分发版本为 7.19.7libmemcached
具有来自分发 的活动
sasl
版本
我在我的 CUDA 项目中使用了所有这些库,由于我想将所有这些库更新到最新版本,这些步骤是:
glibc
:构建到/usr/glibc
openssl
:构建成/usr/glibc/openssl-curl/
。在 运行export $LDFLAGS=-L/usr/glibc/lib
之前
curl
: 运行./configure --prefix=/usr/glibc/openssl-curl/ --with-ssl=/usr/glibc/openssl-curl/ --disable-ldap
- 非常重要:$LDFLAGS
必须在运行ning时为空configure
因为脚本将值添加到$LD_LIBRARY_PATH
并且由于新的glibc
和分发版本的版本不匹配所有程序都崩溃segmentation fault
。之前make
又运行export $LDFLAGS=-L/usr/glibc/lib
.- 对于我的项目,我还必须使用以下命令使用新的
glibc
版本重建libmemcached
:./configure --prefix=/usr/local/libmemcached --disable-sasl
在 CUDA 中,我必须设置新库的路径,现在一切正常。为了加载新的 glibc
版本,设置链接器选项 -Wl,--rpath=/usr/glibc/lib
和 -Wl,--dynamic-linker=/usr/glibc/lib/ld-linux-x86-64.so.2
也很重要。
对于我的 linux 系统,我 不能 添加 /etc/ld.so.conf
路径 /usr/glibc/lib
否则整个系统会崩溃。