我需要在SuSE linux系统上构建log4cxx库,而我不是root用户。包管理器zypper显然不知道log4cxx。
我下载了log4cxx和try to build with autotools
./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.*
文件之一吗?
答案 0 :(得分:3)
您可能希望安装libapr1-devel
以便可以针对它进行编译。然后尝试重新运行./configure
。
答案 1 :(得分:3)
我遇到了同样的问题,我认为你正在使用appache网站上的源代码,我相信它已经过时了。这个问题已经在几年前的SVN主干中得到修复了(lolol,我猜这个问题的时候就好了。)
只需拉出svn trunk的源代码并编译它:
svn checkout http://svn.apache.org/repos/asf/incubator/log4cxx/trunk apache-log4cxx
./autogen.sh
./configure
make
make check
sudo make install
答案 2 :(得分:1)
在software.opensuse.org上有人为最新版本的openSUSE以及liblog4cxx10的SLE构建了软件包。也许这对你有用,而不是建立自己的。
答案 3 :(得分:0)
我在3.3.4-5.fc17.x86_64遇到了同样的问题,并通过将相应的H文件包含在make实用程序报告的CPP文件中来解决它。 在我的情况下,每次获取新错误时都应该运行make实用程序3次,并通过在报告的CPP文件中添加适当的包含H来修复它。
主要思想如下: 1)通过运行man实用程序进行检查,其中定义了错误中提到的函数。 例如,man memmove说它是在string.h头文件中定义的。 2)将适当的包含文件添加到CPP文件中。 例如,make实用程序抱怨inputstreamreader.cpp没有找到memmove函数。打开inputstreamreader.cpp文件并将string.h添加到其头文件中。 3)运行make实用程序,直到编译log4cxx没有错误。
答案 4 :(得分:0)
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