7

我正在尝试在 RedHat Linux 机器上构建 ZooKeeper。(ZooKeeper 到底是什么可能并不重要 :-)

当我按照包装说明进行操作时,我得到:

 $ 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_CPPUNIT 的引用来解决这个问题,但我真正想做的是在我的个人目录中安装 CPPPUNIT 并指向它,但我没有赚太多在弄清楚如何告诉 autoconf/auotmake 系统在非标准位置查找它方面取得了进展。有人对如何做到这一点有任何提示吗?

4

4 回答 4

7

您要设置环境变量 ACLOCAL_PATH。

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

要确定需要将 ACLOCAL_PATH 指向哪个目录,您必须找到包含定义 AM_PATH_CPPUNIT 的 .m4 文件的目录。

于 2009-09-15T22:30:04.647 回答
5

就我而言,由于缺少包 cppunit-devel,我得到了这个错误。在我的centos服务器上安装这个包后yum -y install cppunit-devel,一切正常。

于 2014-02-25T09:14:50.483 回答
1

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

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

此外,如果迫在眉睫,您可以..(这会清除您的 Makefile 中 autoconf/configure 命令留给您的任何非工作废话...)

make clean

并打开你的“./configure”脚本,它是小伙伴(任何名为“configure.*”的东西)......在文本编辑器中。然后,稍微小心地“查找和替换”任何“事物”的实例让你感到困惑。一旦你修复了配置脚本中的指令,然后再次运行它们......运气好的话,你的 make 文件将在你的环境中工作。

注意:这是我在我的 MAC 上所做的,通常用于编译未经测试或打算在 Mac 上运行的 LINUX SW。这可能是错误的做法,但是当没有太多选择时,有时您只需要进入那里并解决它。

于 2011-04-30T05:19:23.517 回答
1

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

export ACLOCAL_PATH="/usr/share/aclocal/:/usr/local/share/aclocal"
于 2015-11-25T10:14:21.727 回答