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