linkovani - problem s podtrzitky u symbolu ?
Vaclav Ovsik
ovsik na skoda.cz
Pátek Leden 9 15:10:42 CET 1998
Dobry den
Snazim se napsat prog. pouzivajici knihovnu Open Client od sybase a taky
prelozit sybperl (modul do perlu pro komunikaci se sybase i jinymy sql
servery).
knihovnu od sybase jsem stahl z URL:
ftp://ftp.sybase.com/pub/linux/sybase.tgz
Je to "Open Client/C for LINUX, version 10.0.3",
bohuzel jsem to pouze staticke knihovny a prelozene uz asi nekdy drive,
neb "it was last modified on Mon Oct 14 11:25:01 1996 - 451 days ago".
Jak v README stoji Sybase nehodla poskytovat ke knihovne zadny support.
Kdyz se snazim slinkovat svuj testovaci programek, tak my to na vsechny
symboly z knihoven zarve unresolved:
...
sybex.o(.text+0x22): undefined reference to `cs_ctx_alloc'
sybex.o(.text+0x35): undefined reference to `ct_init'
sybex.o(.text+0x55): undefined reference to `ct_callback'
...
(samozrejme tam mam cestu na knihovny -L.. i ty knihovny -llibcs ..)
zjistil jsem, ze kdyz se do knihoven podivam pomoci nm,
tak maji v podstate vsechny symboly predrazene lomitko,
napr. modul s _ct_connect:
ctconn.o:
000005bc d _Sccsid
00000000 t ___gnu_compiled_c
U _com_async_poll
U _com_async_restart
U _com_async_start
00000220 T _ct__50cont_connect
U _ct__api_con_verification
00000290 t _ct__api_connect_async
000000c0 t _ct__api_connect_fail
00000140 t _ct__api_save_server_name
U _ct__api_setdata
U _ct__api_string
U _ct__apicont_comp_cb
U _ct__apicont_trans
U _ct__ep_s
U _ct__ep_sds
U _ct__ep_sss
U _ct__error
U _ct__mp_free
00000020 t _ct__pchk_connect
000004c0 T _ct_connect
U _intlgetenv
U _np_conn_props
00000000 t gcc2_compiled.
Ovsem nm na muj programek.o ma ty symboly bez podtrzitek:
U _GLOBAL_OFFSET_TABLE_
U _IO_stderr_
U _IO_stdout_
00000440 T clientmsg_callback
00000004 C context
U cs_ctx_alloc
U cs_ctx_drop
U ct_bind
...
No a ja nevim co rict gcc nebo linkeru. Nejak to jit musi, protoze se
to zrejme podarilo panovi "Cristian Gafton, <gafton na sorosis.ro>", jehoz
je balik ftp://ftp.redhat.com/pub/contrib/SRPMS/sybperl-2.07-3.src.rpm
Ovsem i ten jsem zkusil prelozit (sybase.tgz se musi nainstalovat predtim)
se stejnym vysledkem.
Mam RedHat 5.0, ale stejne priznaky jsou i na RedHat 4.2
Za typy dekuje
Venca
--
Vaclav OVSIK email: ovsik na skoda.cz
Skoda Informatika phone: +420 19 7721366
Další informace o konferenci Linux