在Red Hat Enterprise Linux Server版本7上。9 with ldd version = ldd(GNU libc)2.17,当我尝试使用makefile构建代码时,会看到以下错误:
//usr/lib64/libresolv.so.2: undefined reference to `__resolv_context_get@GLIBC_PRIVATE'
//usr/lib64/libresolv.so.2: undefined reference to `__h_errno@GLIBC_PRIVATE'
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libpci.so: undefined reference to `memcpy@GLIBC_2.14'
//usr/lib64/libresolv.so.2: undefined reference to `__resolv_context_get_override@GLIBC_PRIVATE'
//usr/lib64/libresolv.so.2: undefined reference to `__sendmmsg@GLIBC_PRIVATE'
//usr/lib64/libresolv.so.2: undefined reference to `__resolv_context_get_preinit@GLIBC_PRIVATE'
//usr/lib64/libresolv.so.2: undefined reference to `__resolv_context_put@GLIBC_PRIVATE'
collect2: error: ld returned 1 exit status
如何解决此问题?
目前的ldd版本是2。17、我应该尝试升级GLIBC吗?这是一个新安装的服务器,我是否缺少任何配置?
1条答案
按热度按时间s2j5cfk01#
请注意,
ldd
(您引用的内容)和ld
(您调用的内容)是完全不同的程序。您应该在问题中显示您调用的实际命令。我怀疑你直接调用
ld
。这通常不是一个好主意,除非你有非常具体的(和相对不寻常的)需求。通常你会使用编译器前端(e.例如gcc
或其他)来链接您的程序;它将在添加所有相关库之后调用ld
本身。但是,如果您使用的是解析器,您可能需要将
-lresolv
添加到您的链接线。