On Tue, 12 Sep 2000, Paul S. Romanchenko wrote: > On Tue, 12 Sep 2000, Sergey Chumakov wrote: > > SC>Hi, All! > SC> > SC>Я перетягиваю c++ библиотеку с win на линукс. Работаю на текущем woody. > SC>У меня возинкли некоторые проблемы: > SC> > SC>1. После компиляции объектников я пытался собрать .so c помощью ld. > SC>Этот вариант не прошел - были проблемы с виртуальными функциями. > SC>Вылечилось использованием для сборки g++. С чем бы это могло быть > SC>связано? > С именами виртуальных функций. В ++ имена функций "портятся". Не портятся, а кодируются. Иначе как же работает весь QT-based софт тогда?
> > SC> > SC>2. Собираю стат. lib.а (g++ -Wall -c ..., ar r lib.a f1.o ..., ranlib > lib.a) > SC>При компиляции тестового примера (g++ -Wall -lncurces ./lib.a test.cpp) все > SC>используемые из lib.а методы unresolved. > Что за lib.a? Каждая библиотека имеет вид libИМЯ.ТИП (libm.a, libm.so, > libqt.so). Подключаются они `-lИМЯ'. В случае с lib.a у библиотеки > непонятно какое имя. Вроде ld не дурак, сначала смотрит libLIBNAME а потом LIBNAME - так что это не влияет. > SC> > SC>3. Библиотека динамически загружает библиотеку от interbase6.0.1 (взят в > SC>rpm-ке с родного сайта) все работает, после выхода из тестовой программы > SC>(уже к этому времени сделано dlclose), получаю seg. fault. С > SC>библиотеками от sybase 11.0.3 все нормально. Если не использовать > динамическую > SC>загрузку то завершение нормальное. Может кто-нибудь сталкивался с таким > SC>явлением или может объяснить его причины? > запусти программу из под gdb, когда трапнется напиши bt и посмотри, где > трапается. Может поможет. > Best regards, -Vlad