glibc静态链接 libc.a(nsswitch.o)(.data+0x64):undefined reference to `_nss_files_getaliasent_r' 错误解决方法
2011-09-07 20:43
781 查看
编译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
貌似也能解决, 不过就没去试啦..
这个貌似是glibc编译时的一个bug.
不过在网上找到问题的一个灵巧解决方法, 可以避免手动添加链接参数问题.. :)
将原来的libc.a静态库修改为libc_ns.a
# mv /usr/lib/libc.a /usr/lib/libc_ns.a
重新创建libc.a, 不过是创建一个链接脚本, 将libnss_files.a, libnss_dns.a, libresolv.a都加入
# cat > /usr/lib/libc.a <<EOF /* GNU ld script Use the static library, but some functions are in other strange libraries :-( So try them secondarily. */ GROUP ( /usr/lib/libc_ns.a /usr/lib/libnss_files.a /usr/lib/libnss_dns.a /usr/lib/libresolv.a ) EOF
重新编译链接即可.
原文地址: 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 `clock_gettime' 链接错误问题解决
- PHP 5.3.10 编译安装时出现 undefined reference to `libiconv' 错误的解决方法
- cocos2d-x发生undefined reference to `XX'错误 一劳永逸解决方法
- undefined reference to `clock_gettime' 链接错误问题解决
- undefined reference to `pthread_create'错误通过makefie的解决方法
- 使用opencv 2.2静态库时: undefined reference to `clock_gettime' 链接错误问题解决
- 编译静态expect现undefined reference to `openpty' 错误解决方法
- FC14下错误 /usr/bin/ld: libvalhalla-test.o: undefined reference to symbol 'clock_gettime@@GLIBC_2.2'
- undefined reference to `clock_gettime' 链接错误问题解决(转)
- 编译错误undefined reference to `dlsym' 的解决方法
- 解决webrtc2sip编译出现错误undefined reference to symbol 'dlopen@@GLIBC_2.1'
- 出现undefined reference to `forkpty' 错误解决方法
- undefined reference to `clock_gettime' 链接错误问题解决
- 编译错误:undefined reference to `clock_gettime'
- Qt+ffmpeg 配置 错误:undefined reference to `av_get_random_seed' 找不到.so
- linux下出现undefined reference to `mysql_init' 的解决方法
- Dev C++中的错误的解决[Linker error] undefined reference to `__dyn_tls_init_callback'
- 在linux上编译cppunit1.12.1出现'undefined reference to `dlclose''的解决方法
- Qt编译错误:undefinedreferenceto`vtable for 。。。。'的解决
- linux下开发,解决cocos2d-x中编译出现的一个小问题, undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'