nm -D /lib32/libc.so.6 | grep '\<fopen\>'
0005d0c0 T fopen
00109750 T fopen
readelf -s /lib32/libc.so.6 | egrep '0005d0c0|00109750'
181: 0005d0c0 50 FUNC GLOBAL DEFAULT 12 [email protected]@GLIBC_2.1
182: 00109750 136 FUNC GLOBAL DEFAULT 12 [email protected]_2.0
679: 0005d0c0 50 FUNC GLOBAL DEFAULT 12 [email protected]@GLIBC_2.1
680: 00109750 136 FUNC GLOBAL DEFAULT 12 [email protected]_2.0
這裏是我的問題:爲什麼/lib32/libc.so.6中有兩個「fopen」符號?
爲什麼/lib32/libc.so.6有兩份的fopen符號?應該禁止在同一個目標文件中使用相同的符號,對吧?
爲什麼readelf -s轉儲fopen @@ GLIBC_2.1和[email protected]_2.0而不是fopen?
感謝
感謝gby,你能舉個例子,謝謝:) – camino 2012-02-06 06:57:31
關於共享庫的任何事情,這個星球上最好的資源是Ulrich Drepper的「如何編寫共享庫」:http://people.redhat.com/ drepper/dsohowto.pdf – gby 2012-02-06 15:39:46
非常感謝! :) – camino 2012-02-07 09:10:28