: evil: Бред какой-то!!! g++ упорно не находит биб-ки!

Все о программировании под *nix
Daos

: evil: Бред какой-то!!! g++ упорно не находит биб-ки!

Сообщение Daos »

Народ, помогите пожалуйста!

Сделал я прогу под libxml2 (для FreeBSD). Прога компиляется успешно, но при попытке её слинковать не находит не одной ссылки
на libxml2, успешно установленную в /lib!

Строка такая:
g++ -o testparse -traditional-cpp -l xml2 -l xslt -static testparse.cpp

Даже если сделать -l libxml2 или -L /lib - ничего не изменится

Выдаются сообщения типа:
undefined reference to _xmlCleanupParser

Аватара пользователя
exe
Неотъемлемая часть форума
Сообщения: 860
Зарегистрирован: 28 ноя 2003, 21:08
Откуда: Минск

Сообщение exe »

1.Что показывает ldconfig -v?
2.Иногда нужно менять порядок библиотек
3. Нет смысла в -static флаге после библиотек
4. Найди в какой библиотеке определен _xmlCleanupParser,
команда nm

Гость

Сообщение Гость »

_xmlCleanupParser определён в libxml2! :)) Сейчас строка такая (а эффект тот же):

gcc -o testparser.c -I /usr/include/libxml2 -L /usr/lib -lxml2 -lxslt -lm -lz -lpthread -liconv testparser.cpp

:(:(:(

Аватара пользователя
fa3a
Неотъемлемая часть форума
Сообщения: 619
Зарегистрирован: 25 июл 2003, 17:22
Откуда: Minsk

Сообщение fa3a »

nm -A testparser.o | grep xmlCleanupParser
nm -A /usr/lib/libxml2.so | grep xmlCleanupParser

посмотри те ли же типы для параметров в етой функции..
плюс есть ли символ "T" в libxml2.so напротив xmlCleanupParser..
Never touch the running program!!!

Гость

Сообщение Гость »

Всё Ок, но выяснилась интересная вешчь - прога компиляется под FreeBSD, Debian Linux и даже IRIX, а на CygWinе у одного товарища, для которого она и нужна была - не фига!

Вот так-то...:roll:

Аватара пользователя
fa3a
Неотъемлемая часть форума
Сообщения: 619
Зарегистрирован: 25 июл 2003, 17:22
Откуда: Minsk

Сообщение fa3a »

ну ясный пень!!! CygWin ето все-таки не Линукс.. ето в конце концов Винда!! Хоть и юниксоподобная... :-)
Never touch the running program!!!

mallory
Увлекающийся
Сообщения: 91
Зарегистрирован: 02 фев 2006, 22:47

Сообщение mallory »

Книга "PHP5 В подлиннике",Котеров & Костарев, стр. 192. Написано, что при компиляции libxml2 надо такую команду давать:
./configure --prefix=`pwd`/../bld --with-threads=no --enable-shared=no
Но это видимо в Linux так собирают, а в FreeBSD как задать при компиляции данные опции?

Ответить