`
baiguomeng
  • 浏览: 998321 次
文章分类
社区版块
存档分类
最新评论

glibc静态链接 libc.a(nsswitch.o)(.data+0x64):undefined reference to `_nss_files_getaliasent_r' 错误解决方法

 
阅读更多

编译tielra平台的busybox时报这个错误.必须手动添加 -lc-lnss_files -lnss_dns -lresolv(-Wl,--start-group -lc -lnss_files -lnss_dns -lresolv -Wl,--end-group)作为链接参数..

这个貌似是glibc编译时的一个bug.

不过在网上找到问题的一个灵巧解决方法, 可以避免手动添加链接参数问题.. :)

将原来的libc.a静态库修改为libc_ns.a

重新创建libc.a, 不过是创建一个链接脚本, 将libnss_files.a, libnss_dns.a, libresolv.a都加入


重新编译链接即可.

原文地址: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=76451

还有1种方法是给glibc打补丁.

http://crosstool-ng.net/hg/crosstool-ng/diff/7657175fcb8c/patches/glibc/ports-2.12.1/250-fix-pr631.patch

http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo/src/patchsets/glibc/2.5/1090_all_glibc-2.3.6-fix-pr631.patch?view=diff&r1=text&tr1=1.1&r2=text&tr2=1.1&diff_format=s

貌似也能解决, 不过就没去试啦..

分享到:
评论

相关推荐

    【转】undefined reference to错误的解决方法.doc

    【转】undefined reference to错误的解决方法.doc

    libstdc++.so.5

    解决 INFO: /usr/lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14',将文件替换到/usr/lib64就可解决问题(源文件记得备份)

    解决usrlib64libstdc++.so.6和lib64libc.so.6版本过低问题

    ### 解决usr/lib64/libstdc++.so.6 和 lib64/libc.so.6 版本过低的问题 在进行系统环境搭建时,尤其是安装像 MySQL 这样的大型软件包时,可能会遇到库文件版本不兼容的问题。本文将详细介绍如何解决 CentOS 7.0 下 ...

    libstdc++.so.6.0.29_GLIBCXX_3.4.29.zip

    # 解压 ...sudo mv /lib/x86_64-linux-gnu/libstdc++.so.6 /lib/x86_64-linux-gnu/libstdc++.so.6.old sudo ln -s /lib/x86_64-linux-gnu/libstdc++.so.6.0.29 /lib/x86_64-linux-gnu/libstdc++.so.6

    redhat7.5以上安装问题memcpy@GLIBC_2.14

    //usr/lib64/libstdc++.so.5:对‘memcpy@GLIBC_2.14’未定义的引用 glibc-static-2.17-55.el7.x86_64.rpm (网上解决),我提供的是glibc-static-2.17-55.el6.x86_64.rpm相关包解决

    libc.so.6 libc.so.6

    《深入理解Linux动态链接库:以libc.so.6为例》 在Linux系统中,`libc.so.6`是一个至关重要的动态链接库,全称为“GNU C Library”,它提供了大量用于程序开发的基础函数,如字符串处理、内存管理、I/O操作等。这个...

    glibc-2.11.1.tar.gz

    项目在高版本linux版本编译,可执行文件放在低版本的服务器上跑,报错 undefined reference to `__isoc99_sscanf' 原因是我们的程序中使用的某个库,如xxx.a, xxx.so是在高版本的glibc环境里面进行编译的。 有...

    libstdc++6_4.7.2-5_amd64.7z

    初始化mysql报错: ./bin/mysqld: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15..../bin/mysqld: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./bin/mysqld) libstdc++6_4.7.2-5_amd64.7z

    glibc-2.2.5.tar.gz

    6. **动态链接**:glibc支持动态链接,使得程序可以在运行时加载和卸载共享库,有利于代码的复用和更新。 在glibc-2.2.5这个特定版本中,开发者可能关注的改进和修复包括性能优化、安全性增强、错误修复以及对新...

    centos 升级 glibc-2.14 教程附资源

    centos 升级 glibc 2.14 教程: tar -xvf glibc-2.14....# 查看 /lib64/libc.so.6 软链接 ll /lib64/libc.so.6 /lib64/libc.so.6 -> /lib64/libc-2.14.so # 查看 glibc 版本 strings /lib64/libc.so.6 |grep GLIBC_

    安装vsftpd报错sysdeputil.c问题文件的补丁attachment.bin

    这包括但不限于正确的GCC编译器、必要的开发库(如GLIBC、PAM等),以及系统的其他依赖。你可以通过执行以下命令来检查并安装缺失的依赖: ```bash sudo apt-get update sudo apt-get install build-essential ...

    libstdc++-3.4.6-9.i386_libstdc++-3.4.6-11.x86_64.zip

    2. 安装32位库:即使在64位系统上,也要确保安装了所需的32位库,这可以通过`yum install glibc.i686 libstdc++.i686`来完成。 3. 安装libstdc++:使用RPM包管理器安装解压后的RPM文件,如`rpm -ivh libstdc++-...

    解决Android下getifaddrs和freeifaddrs undefined reference 的问题

    因此,当你尝试在C或C++代码中使用这两个函数时,编译器会报出“undefined reference”错误。 为了解决这个问题,你可以采取以下几种方法: 1. **静态链接libresolv库**:在Android.mk或者CMakeLists.txt中,确保...

    libstdc++.so.6.0.29

    nodejs 18在centos7上安装时, 报错需要...node: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /lib64/libstdc++.so.6) 参见解决办法 https://blog.csdn.net/gs80140/article/details/142141913

    LINUX7安装ORACLE报ins_ctx.mk

    INFO: /usr/lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14' collect2: error: ld returned 1 exit status 版本高了,换32位的版本也是不行的,按资源中的处理一下,就OK了,

    centos7 glibc 2.17-55.el7的相关rpm包glibc-static-2.17-55.el7.x86_64.rpm

    安装此资源,可以解决/lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14' 这个问题 包里有glibc-static-2.17-55.el7.x86_64.rpm及其相关依赖包

    compat-libstdc++-33-3.2.3(x86_64)

    3. 安装必要的库文件,如"compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm",以及其他可能的依赖,如"binutils"、"glibc"、"libaio"等。 4. 设置用户权限和组,Oracle通常建议创建一个专门的Oracle用户和组,以增强...

    解决linux下出现/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found问题

    在Linux系统中,遇到“/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found”的错误提示通常意味着系统中的`libstdc++.so.6`库版本过低,无法满足某些应用程序运行所需的C++ ABI(Application Binary ...

    编译QT出现/usr/lib/libstdc++.so.6:version 'GLIBCXX_3.4.9' not found /usr/lib/libstdc++.so.6:version 'GLIBCXX_3.4.11'not found的解决

    把libstdc++.so.6.0.13这个资源放到/usr/lib文件夹下。删除/usr/lib/libstdc++.so.6。 在输入命令ln -s /usr/lib/libstdc++.so....可以输入strings /usr/lib/libstdc++.so.6 | grep GLIBC查看GLIBCXX_XXX是否在其中

Global site tag (gtag.js) - Google Analytics