Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по FreeBSD (http://forum.oszone.net/forumdisplay.php?f=10)
-   -   Как найти нужную библиотеку ??? (http://forum.oszone.net/showthread.php?t=49687)

kryo 24-05-2005 17:31 326989

Как найти нужную библиотеку ???
 
Проблема в следующем. Собирал одну программу, требует библтотеку libpcre. Установил из портов все с названием pcre. Нифига. Подскажите пожалуйста как найти сабж и можно ли вообще находить пакеты или порты если нужна какая-нибудь библиотека (т.е. по названию)

misher 24-05-2005 20:45 327044

Проблема плохо описана - может следует написать подробнее что и когда падает?
Программа компилируется, но неработает?
Компиляция падает с сообщением типа:
"/usr/bin/ld: cannot find -lpcre" ?

mar 24-05-2005 21:10 327050

к сказанному misher могу добавить только ответ на второй вопрос (если я правильно его поянла):
Цитата:

можно ли вообще находить пакеты или порты если по названию
на то есть команда find, ну и, соответственно, man find.

Imperio 24-05-2005 22:03 327060

Может быть это поможет http://www.google.com.ua/search?hl=u...+libpcre&meta=

FrIcE 26-05-2005 06:39 327358

Во первых, нужно проверить, что загрузчик видит библиотеку: ldconfig -r | grep pcre.
Если она видна, значит приложение не учитывает дополнительные пути расположения библиотек. Лечится установкой LDFLAGS="-L/usr/local/lib" перед запуском configure либо можно поправить Makefile.
Если она не видна, значит не прописаны дополнительные пути загрузчика, нужно их добавить: ldconfig -m /usr/local/lib и затем проверяем, видит ли загрузчик библиотеку (должен видеть). Если видит, пробуем продолжить компиляцию, либо шаманим с LDFLAGS.

Чтобы загрузчик при запуска ОС учитывал дополнительные пути расположения библиотек, нужно прописать в rc.conf:
ldconfig_paths="/usr/local/lib /other/path ..." (по умолчанию насколько я помню он подгружает только /lib и /usr/lib).

kryo 26-05-2005 11:51 327445

Собственно программа http://sams.irc.perm.ru/ ни в портах ни в пакетах ее нет. При ./configure пишет
...
cheking for PCRE headers ... using pcre includes from /usr/include/pcre
cheking for <pcre.h> in /usr/include/pcre... configure error : Cannot find PCRE's <pcre.h> in /usr/include/pcre

Знаю только что нужна библиотека libpcre но какой порт или пакет ее содержит не знаю.

kryo 26-05-2005 12:28 327461

Спасибо за советы, все оказалось просто : www.pcre.org
Теперь бы заставить эту сволочь компилироваться :)

archy 26-05-2005 12:54 327472

/usr/ports/devel/pcre

misher 26-05-2005 21:34 327651

Я встречался с подобной проблемой (в портах 5.3 некомпилился толи tk толи tcl потому что *h файлы искались не в том месте, лечил это тем что делал линки этих файлов из /usr/local/include на /usr/include)
kryo если после установки порта програма компилироваться небудет найди этот pcre.h с помошью команды find и залинкуй его в /usr/include//. Совет FrIcE наверное будет работать даже лучше...

kryo 27-05-2005 13:00 327884

Все нормально (если можно так сказать :)) ./configure находит библиотеку только теперь не хочет компилировать:

redirect.c:29:23: pcre/pcre.h: No such file or directory
redirect.c:63: error: syntax error before "pcre"
redirect.c: In function `clean_up_child_process':
redirect.c:90: warning: implicit declaration of function `wait'
redirect.c: In function `convertplus':
redirect.c:111: warning: unknown conversion type character 0x20 in format
redirect.c: In function `main':
redirect.c:323: warning: implicit declaration of function `getpid'
redirect.c:555: error: structure has no member named `cexpr'
redirect.c:555: warning: implicit declaration of function `pcre_compile'
redirect.c:701: error: structure has no member named `cexpr'
redirect.c:702: warning: implicit declaration of function `pcre_exec'
redirect.c:702: error: structure has no member named `cexpr'
redirect.c:711: error: structure has no member named `cexpr'
redirect.c:712: error: structure has no member named `cexpr'
redirect.c:320: warning: unused variable `rc'
gmake: *** [redirect.o] Error 1

хотя пути правильные и симлинков я везде понаставил

archy 27-05-2005 18:01 327969

он хедеров не находит
Цитата:

redirect.c:29:23: pcre/pcre.h: No such file or directory

misher 28-05-2005 08:24 328087

kryo
Попробуй залинковать папку pcre (где она лежит? в /usr/local/include/pcre?) на /usr/include/pcre

kryo 30-05-2005 11:31 328536

Ура, все получилось, создал директорию /usr/local/include/pcre и сделал туда линк на pcre.h

mar 31-05-2005 03:09 328774

kryo
да здравствует unix-way :) - поздравляю


Время: 09:35.

Время: 09:35.
© OSzone.net 2001-