mar*_*tin 5 c c++ oracle linker linker-errors
起初我警告说我/不是程序员,但只有管理员我试图理解一些操作
当我安装 Oracle 制作的程序时,我收到日志消息:
/usr/bin/make -f ins_precomp.mk relink ORACLE_HOME=/u01/oracle/OraHome_1 EXENAME=proc/Linking /u01/oracle/OraHome_1/precomp/lib/proc__stack_chk_fail@GLIBC_2.4'`
libgcc_s.so: undefined reference to
ls -l
../libgcc_s.so -> /lib/libgcc_s.so.1
所以接下来我尝试通过以下方式进行诊断:
objdump -T /lib/libgcc_s.so.1 | grep __stack_chk_fail
00000000 DF *UND* 00000000 GLIBC_2.4 __stack_chk_fail
和
ldd /lib/libgcc_s.so.1.ORG
linux-gate.so.1 => (0x00fc5000)
libc.so.6 => /lib/libc.so.6 (0x00110000)
/lib/ld-linux.so.2 (0x00b39000)
和
objdump -T /lib/libc.so.6 |grep __stack_chk_fail
00c52f80 g DF .text 0000001a GLIBC_2.4 __stack_chk_fail
1)如果所有符号都在共享库中,我不知道为什么会出现此问题(可能不是,请纠正我,或如何检查)
当我把没有符号 __stack_chk_fail 的旧库 libgcc_s.so.1
objdump -T /lib/libgcc_s.so.1 |grep __stack_chk_fail
empty output
一切正常
2) 链接器是否不检查对 __stack_chk_fail 的引用,因为在这种情况下 libgcc_s.so.1 中没有?
| 归档时间: |
|
| 查看次数: |
11685 次 |
| 最近记录: |