moduly pomoci dlopen() a staticke linkovani

Ales Pour hnipak na vorvan.sh.cvut.cz
Čtvrtek Červenec 23 11:00:18 CEST 1998


Zdravim,
snazim se v programku pracovat se sdilenyma knihovnama pomoci funkci z
dlfcn.h a narazil jsem na mensi komplikaci. Z urcitych duvodu ho musim
'instalovat' STATICKY linkovany (a ten modul taky), no a kamen urazu je,
ze v tomhle pripade neprobiha reference symbolu, co jsou v exe souboru,
z te (dl)otevrene knihovny. Navic se jeste nevyvola _fini() z te knihovny
(_init() probehne).
Pouzivam egcs-1.0.3a,glibc-2.0.7,ld-2.8.2(BFD 2.8.1.0.23).
Diky za kazdu radu,
    Ales Pour

/*
modul 'class.so' vznika takhle:

g++ -Wall -fPIC -c class.cc -o class.o
ld -m elf_i386 -shared -o class.so class.o -static -lstdc++ -lc -lgcc

exe soubor 'pokus' takhle:

g++ -Wall -c pokus.cc -o pokus.o
g++ -Wall -o pokus pokus.o -static -ldl

a kdyz to spustim:

./class.so: undefined symbol: y

pri dynamicky linkovanym exe s -rdynamic je vsechno OK...
*/




Další informace o konferenci Linux