Пытаюсь поставить freeradius+freenibs. FreeBSD 5.3. Никак эта связка не хочет видеть, где лежат библиотеки mysql. Версия mysql - 4.1.8
Делаю так:
./configure --with-mysql-lib-dir=/usr/local/mysql/lib
В ответ:
checking for mysql_init in -lmysqlclient... no
configure: warning: mysql libraries not found. Use --with-mysql-lib-dir=<path>.
configure: warning: nibs submodule 'mysql' disabled
Подскажите, как это побороть
Открой config.log и посмотри что конкретно у него не получилось слинковать и с какими опциями он это делал. В конце файла...
>Открой config.log и посмотри что конкретно у него не получилось слинковать и
>с какими опциями он это делал. В конце файла...
Вот кусок файла src/modules/rlm_nibs/drivers/rlm_nibs_mysql/config.logconfigure:1020: checking for mysql_init in -lmysqlclient
configure:1035: gcc -o conftest -g -O2 conftest.c -lz -L/usr/local/mysql/lib/mysql -lmysqlclient 1>&5
/usr/local/mysql/lib/mysql/libmysqlclient.a(password.o)(.text+0x308): In function `scramble_323':
: undefined reference to `floor'
/usr/local/mysql/lib/mysql/libmysqlclient.a(password.o)(.text+0x373): In function `scramble_323':
: undefined reference to `floor'
/usr/local/mysql/lib/mysql/libmysqlclient.a(password.o)(.text+0x4c5): In function `check_scramble_323':
: undefined reference to `floor'
/usr/local/mysql/lib/mysql/libmysqlclient.a(password.o)(.text+0x560): In function `check_scramble_323':
: undefined reference to `floor'
configure: failed program was:
#line 1028 "configure"
#include "confdefs.h"
extern char mysql_init();
int main() {
mysql_init()
; return 0; }Не мойму ничего. Может ему другой mysql нужен?
Попробуй перед запуском configure проставить
export CFLAGS="$CFLAGS -lm"
export CCFLAGS="$CCFLAGS -lm"и прогнать все еще раз
для надежности удали config.h и config.cache
>Попробуй перед запуском configure проставить
>export CFLAGS="$CFLAGS -lm"
>export CCFLAGS="$CCFLAGS -lm"
>
>и прогнать все еще раз
>для надежности удали config.h и config.cacheПочти помогло :-) В некоторых местах библиотеки нашлись. Но не везде. Подскажите, что это за опция (или это тоже библиотека?). И где про них все можно почитать.
>>Попробуй перед запуском configure проставить
>>export CFLAGS="$CFLAGS -lm"
>>export CCFLAGS="$CCFLAGS -lm"
>>
>>и прогнать все еще раз
>>для надежности удали config.h и config.cache
>
>Почти помогло :-) В некоторых местах библиотеки нашлись. Но не везде. Подскажите,
>что это за опция (или это тоже библиотека?). И где про
>них все можно почитать.как, вы не знаете как происходит компиляция и сборка? Тогда какого ...
пытаетесь делать самостоятельно то чего не знаете?configure должен знать что и где находится:
где у вас библиотеки mysql? ls -la /usr/local/lib/mysql или
/usr/local/mysql/lib ? где у вас headers от mysql?на этапе компиляции нужны только headers, на этапе линковки - библиотеки,
значит mysql и другие необходимые библиотеки должны быть в кеше:ldconfig -r | grep mysql
Если не понимаете что делаете - используйте порты.
>>Попробуй перед запуском configure проставить
>>export CFLAGS="$CFLAGS -lm"
>>export CCFLAGS="$CCFLAGS -lm">Почти помогло :-) В некоторых местах библиотеки нашлись. Но не везде. Подскажите,
>что это за опция (или это тоже библиотека?). И где про
>них все можно почитать.При линковке оно кричало про "undefined reference to `floor'", 5.3 под рукой нет, но в 4.10 man floor говорит что линковать надо с указанием libm (-lm для линковщика). Тут я наверно ошибся немного, скорей надо проставить LDFLAGS. Вот стандартный набор, которые повлияет на configure/make. По хорошему грамотно написанный configure все сам должен делать
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
headers in a nonstandard directory <include dir>
CPP C preprocessor
>>>Попробуй перед запуском configure проставить
>>>export CFLAGS="$CFLAGS -lm"
>>>export CCFLAGS="$CCFLAGS -lm"
>
>>Почти помогло :-) В некоторых местах библиотеки нашлись. Но не везде. Подскажите,
>>что это за опция (или это тоже библиотека?). И где про
>>них все можно почитать.
>
>При линковке оно кричало про "undefined reference to `floor'", 5.3 под рукой
>нет, но в 4.10 man floor говорит что линковать надо с
>указанием libm (-lm для линковщика). Тут я наверно ошибся немного, скорей
>надо проставить LDFLAGS. Вот стандартный набор, которые повлияет на configure/make. По
>хорошему грамотно написанный configure все сам должен делатьда ну? мб он должен искать find'ом нестандартные места куда положены
headers и библиотеки?> CC
>C compiler command
> CFLAGS C compiler flags
> LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
> nonstandard directory <lib dir>
> CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
> headers in a nonstandard directory <include dir>
> CPP C
>preprocessor
libm - математическая библиотека, разумеется она нужнате кроме флагов configure больше ничего не нужно: autoconf, automake, libtools...?