Здание log4cxx с APR

Мне нужно построить log4cxx библиотека в системе SuSE Linux, где я не являюсь пользователем root. Менеджер пакетов zypper, видимо, не знает о log4cxx.

Я загружаю log4cxx и попробуй собрать с автоинструментами

./configure

checking for APR... no
configure: error: APR could not be located. Please use the --with-apr option.

Я тогда ищу libapr:

find / -name libapr*

/usr/share/doc/packages/libapr-util1
/usr/share/doc/packages/libapr1
/usr/lib64/libaprutil-1.so.0.3.12
/usr/lib64/libapr-1.so.0.4.5
/usr/lib64/libaprutil-1.so.0
/usr/lib64/libapr-1.so.0

Так что я стараюсь

./configure --with-apr=/usr/lib64/libapr-1.so.0

configure: error: the --with-apr parameter is incorrect. It must specify an install prefix, a build directory, or an apr-config file.

То же самое для --with-apr=/usr/lib64/libapr-1.so.0.4.5 а также --with-apr=/usr/lib64/,

Какой файл делает ./configure Ищу? Что значит --with-apr ожидать? Является одним из двух *.so.* файлы необходимой библиотеки?

3

Решение

На software.opensuse.org у кого-то есть пакеты, собранные для последних версий openSUSE, а также SLE на liblog4cxx10. Может быть, это будет работать для вас, вместо того, чтобы строить свой собственный.

1

Другие решения

Возможно, вы захотите установить libapr1-devel так что вы можете скомпилировать против него. Затем попробуйте снова ./configure,

3

Я столкнулся с той же проблемой, я думаю, что вы используете исходный код сайта appache, который, как я считаю, устарел. Эта проблема была исправлена ​​в стволе SVN несколько лет назад (лолол, я думаю, примерно в то время, когда этот вопрос был задан).

Просто извлеките исходный код ствола SVN и скомпилируйте его:

svn checkout http://svn.apache.org/repos/asf/incubator/log4cxx/trunk apache-log4cxx
./autogen.sh
./configure
make
make check
sudo make install
3

Я столкнулся с той же проблемой на 3.3.4-5.fc17.x86_64 и решил ее, включив соответствующие файлы H в файлы CPP, сообщаемые утилитой make.
В моем случае я должен запускать утилиту make 3 раза каждый раз, получая новую ошибку и исправляя ее, добавляя соответствующее include H в сообщаемый файл CPP.

Основная идея заключается в следующем:
1) Проверьте, запустив утилиту man, где указана функция, указанная в ошибке.
Например, man memmove говорит, что он определен в заголовочном файле string.h.
2) Добавьте соответствующий файл включения в файл CPP.
Например, утилита make жалуется, что inputtreamreader.cpp не находит функцию memmove. Откройте файл inputtreamreader.cpp и добавьте string.h к его заголовочным файлам.
3) Запустите утилиту make, пока log4cxx не будет скомпилирован без ошибок.

0

Майкл Горен прав.
Отсутствует несколько файлов «.h».
Поэтому вы должны добавить их перед запуском make.

sed -i '1i#include <string.h>\n'    src/main/cpp/inputstreamreader.cpp
sed -i '1i#include <string.h>\n'    src/main/cpp/socketoutputstream.cpp
sed -i '1i#include <string.h>\n'    src/examples/cpp/console.cpp
sed -i '1i#include <stdio.h>\n'     src/examples/cpp/console.cpp
0
По вопросам рекламы [email protected]