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

Ответить