Russian Qt Forum
Ноябрь 01, 2024, 05:29
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Компиляторы и платформы
>
Компиляторы
>
Ошибки линковки gcc
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Ошибки линковки gcc (Прочитано 7147 раз)
lenja
Гость
Ошибки линковки gcc
«
:
Апрель 12, 2004, 11:05 »
Сразу говорю, что в программировании под Linux (Red Hat 9) я новичок.
Хотел создать простую программу на C++ в связи с имеющейся динамической библиотекой (исходных кодов, к сожалению, не имею), которая была откомпилирована еще на RedHat6.1 компилятором GCC:(GNU)egcs-2.91.66 19990314/Linux (egcs-1.1.2 release). Эту запись я нашел внутри кода самой DLL-ки.
Попробовал откомпилировать программку под KDevelop, настроив маршрут к динамической библиотеке и хедерам, но получил кучу сообщений:
gmake all-recursive gmake[1]: Entering directory `/home/lenja/lheed_a2ia' Making all in lheed_a2ia gmake[2]: Entering directory `/home/lenja/lheed_a2ia/lheed_a2ia' /bin/sh ../libtool --silent --mode=link --tag=CXX g++ -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -fno-builtin -g -O2 -O0 -g3 -Wall -fno-exceptions -fno-check-new -o lheed_a2ia lheed_a2ia.o /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: the use of `tmpnam' is dangerous, better use `mkstemp' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `cerr' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `__pure_virtual' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `__cp_push_exception' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `char type_info node' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `__ctype_b' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `endl(ostream &)' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `char type_info function' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `__uncatch_exception' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `__out_of_range(char const *)' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `__rtti_user' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `int type_info function' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `__rtti_si' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `__check_eh_spec' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `__throw' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `ostream::operator<<(char const *)' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `terminate(void)' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `__throw_type_match_rtti' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `__cp_pop_exception' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `__rtti_ptr' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `__length_error(char const *)' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `__cp_eh_info' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `__rtti_class' /home/lenja/checkreader/adsdb_8_2/lib/redhat61/libAdsDBApi.so: undefined reference to `__eh_alloc' collect2: ld returned 1 exit status gmake[2]: *** [lheed_a2ia] Error 1 gmake[2]: Leaving directory `/home/lenja/lheed_a2ia/lheed_a2ia' gmake[1]: *** [all-recursive] Error 1 gmake[1]: Leaving directory `/home/lenja/lheed_a2ia' gmake: *** [all] Error 2 *** failed *** ============================================
Пробовал компилировать из командной строки gcc, но результат практически тот же, хотя сообщений только 6.
Что делать, как указать компилятору то, чего не хватает?
Записан
npak
Гость
Ошибки линковки gcc
«
Ответ #1 :
Апрель 12, 2004, 13:58 »
Скорее всего, тебе потребуется старый компилятор или пересобрать библиотеку новым компилятором.
В g++ серии 3.x.x изменили схему представления имён C++ (name mangling) в объектных файлах, поэтому старые библиотеки теперь не линкуются с новыми объектниками.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...