|
cc dummy.c -Wl,--verbose &> dummy.log
然后
readelf -l a.out | grep ': /lib'
提示没有文件a.out
我直接运行cc dummy.c,有出错信息:
/tools/lib/gcc/i686-pc-linux-gnu/4.0.3/../../../../i686-pc-linux-gnu/bin/ld: warning: ld-linux.so.2, needed by /lib/libc.so.6, not found (try using -rpath or -rpath-link)
/lib/libc.so.6: undefined reference to `_rtld_global@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `__libc_enable_secure@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `__libc_stack_end@GLIBC_2.1'
/lib/libc.so.6: undefined reference to `_rtld_global_ro@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_out_of_memory@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `___tls_get_addr@GLIBC_2.3'
/lib/libc.so.6: undefined reference to `_r_debug@GLIBC_2.0'
/lib/libc.so.6: undefined reference to `_dl_argv@GLIBC_PRIVATE'
collect2: ld returned 1 exit status
继续运行下面的测试程序:
grep -o '/usr/lib.*/crt[1in].* .*' dummy.log
我的是正常的
然后grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
我的就是:
SEARCH_DIR("/tools/i686-pc-linux-gnu/lib")
SEARCH_DIR("/usr/lib")
SEARCH_DIR("lib");
最后一个lib路径错误了,我怀疑就是这里出错了导致cc失败,
宿主是LiveCD,前面一直都是正确的,可能是哪里输入/lib的时候输入错了,应该怎么修正这个错误? |
|