2009-09-15 74 views
5

我想在RedHat Linux机器上构建ZooKeeper。 (究竟是什么动物园管理员可能并不重要:-)如何将autoconf/automake指向非标准包

当我按照包装上的说明,我得到:

$ autoreconf -if 
aclocal:configure.ac:33: warning: macro `AM_PATH_CPPUNIT' not found in library 
aclocal:configure.ac:33: warning: macro `AM_PATH_CPPUNIT' not found in library 
configure.ac:33: error: possibly undefined macro: AM_PATH_CPPUNIT 
     If this token and others are legitimate, please use m4_pattern_allow. 
     See the Autoconf documentation. 
autoreconf: /usr/bin/autoconf failed with exit status: 1 

在标准的地方,我无法安装CPPPUNIT。 (您还没有root权限,系统团队 拥有从标准配置“无偏差”的政策。)

我已经在我的configure.ac文件中注释掉到 AM_PATH_CPPUNI T中的引用解决该问题的工作,但我真的想要做的 是将CPPPUNIT安装在我的个人目录中并指向它,但是我在 中没有取得太多进展,无法告诉autoconf/auotmake 系统在其中查找一个非标准的地方。任何人有任何提示 如何做到这一点?

+0

你或许应该提交错误报告与CppUnit的,因为他们是在automake的的命名空间跺脚。开始“AM_”的名称(m4宏)保留供automake使用。 – 2011-06-30 17:19:39

+0

如果你只是想安装软件包,你为什么要运行autoreconf?如果他们的打包说明告诉你这样做,而不是提供一个可以直接构建的tarball,那么你应该把它作为一个bug报告。他们不应该要求你安装autoconf,更别提要你使用它了。 – 2011-06-30 17:22:36

回答

7

您想要设置环境变量ACLOCAL_PATH。

ACLOCAL_PATH="/home/YOU/path/to/share/aclocal" autoreconf -if 

要搞清楚你需要点什么ACLOCAL_PATH目录,你必须找到包含定义AM_PATH_CPPUNIT的.m4文件的目录。

1

如果路径变量不能添加到您的配置文件或环境..或您有什么,您可以尝试在运行autoconf之前“导出”路径。这将设置该选项,至少这届会议......

export ACLOCAL_PATH=/home/YOU/path/to/share/aclocal 

而且,如果到了紧要关头,你可以..(这将清除出你的任何非工作废话Makefile文件的autoconf的/配置命令离开你......)

make clean 

,开拓你的“的./configure”脚本,它的小伙伴们(任何称为‘配置。*’)。在一个文本编辑器。然后,小心地“查找并替换”任何“事情”的实例正在搅乱你。一旦您修改了配置脚本中的指令,然后再次运行它们......运气良好的话,您的make文件可以在您的环境中运行。

注意:这是我在我的MAC上执行的操作,通常用于编译未经测试或未在Mac上运行的LINUX SW。这可能是错误的做法,但是当没有太多选择的时候,有时候你只能进入并且使用它。

5

在我的情况下,我得到了这个错误,因为缺少包cppunit-devel。在我的Centos服务器上通过yum -y install cppunit-devel安装此包后,一切正常。

+2

是的这导致我解决了我的相关问题 - 在Ubuntu上,我需要安装libcppunit-dev。 – Pierz 2014-05-11 08:52:50

1

如果有多个路径,请将它们添加到:分隔符。 像:

export ACLOCAL_PATH="/usr/share/aclocal/:/usr/local/share/aclocal"