← Back to team overview

sslug-teknik team mailing list archive

Deciffrering af output fra "nm"

 

Hvad betyder de forskellige varianter af bogstaver som U,T,W og gad vide
hvad der ellers gemmer sig, når man eksempelvis kører:

[root@mickey lib]# nm *.a --print-file-name | grep res_state
libc.a:getaddrinfo.o:         U __res_state
libc.a:res_libc.o:00000000 W __res_state
libc.a:gethstbyad_r.o:         U __res_state
libc.a:gethstbynm.o:         U __res_state
libc.a:gethstbynm2.o:         U __res_state
libc.a:gethstbynm2_r.o:         U __res_state
libc.a:gethstbynm_r.o:         U __res_state
libc.a:gethstent_r.o:         U __res_state
libc.a:getnetbyad_r.o:         U __res_state
libc.a:getnetent_r.o:         U __res_state
libc.a:getnetbynm_r.o:         U __res_state
libc.a:getipnodebynm.o:         U __res_state
libc.a:nscd_gethst_r.o:         U __res_state
libc_p.a:getaddrinfo.op:         U __res_state
libc_p.a:res_libc.op:00000004 W __res_state
libc_p.a:gethstbyad_r.op:         U __res_state
libc_p.a:gethstbynm.op:         U __res_state
libc_p.a:gethstbynm2.op:         U __res_state
libc_p.a:gethstbynm2_r.op:         U __res_state
libc_p.a:gethstbynm_r.op:         U __res_state
libc_p.a:gethstent_r.op:         U __res_state
libc_p.a:getnetbyad_r.op:         U __res_state
libc_p.a:getnetent_r.op:         U __res_state
libc_p.a:getnetbynm_r.op:         U __res_state
libc_p.a:getipnodebynm.op:         U __res_state
libc_p.a:nscd_gethst_r.op:         U __res_state
libpthread.a:errno.o:000000a0 T __res_state
libpthread_p.a:errno.op:000000ac T __res_state
libresolv.a:gethnamaddr.o:         U __res_state
libresolv_p.a:gethnamaddr.op:         U __res_state

Den egentlige årsag til at forsøger søge filerne med 'nm', er at jeg
forsøger at compile QT 2.2 (final), men når den kommer til oversættelse
af tutorials eller examples, så kan den ikke finde __res_state(void):

g++  -c -I/opt/qt-2.2.0/include -pipe -O2  -o main.o main.cpp
g++ -L/opt/qt-2.2.0/lib -Wl,-rpath,/opt/qt-2.2.0/lib   -o ./t1
main.o     -lqt 
/opt/qt-2.2.0/lib/libqt.so: undefined reference to `__res_state(void)'
collect2: ld returned 1 exit status
make: *** [t1] Error 1

NB. Dette foregår på en RedHat 6.2 med meget fra 'rawhide' - derunder
glibc.

Mvh.
Reiche



Follow ups