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