如何将autoconf/automake指向非标准包

问题描述 投票:0回答:5

我正在尝试在 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权限,系统团队 有“不偏离”标准配置的政策。)

我通过注释掉对

AM_PATH_CPPUNI
T 在我的 configure.ac 文件中,但我真正想做的 是在我的个人目录中安装 CPPPUNIT 并指向它,但我 在弄清楚如何告诉 autoconf/auotmake 方面没有取得太大进展 系统在非标准位置查找它。任何人有任何提示 怎么做?

autoconf configure automake apache-zookeeper
5个回答
7
投票

你想设置环境变量ACLOCAL_PATH。

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

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


5
投票

在我的例子中,由于缺少包 cppunit-devel,我得到了这个错误。通过

yum -y install cppunit-devel
在我的centos服务器上安装这个包后,一切正常。


1
投票

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

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

另外,如果到了紧要关头,您可以……(这会清除 Makefile 中 autoconf/configure 命令留给您的所有无效废话……)

make clean

然后打开你的“./configure”脚本,它是小朋友(任何名为“configure.*”的东西)..在文本编辑器中。然后,稍微小心地“查找和替换”任何“事物”的实例,这会把你搞砸。一旦你修复了 configure 脚本中的指令,并再次运行它们……幸运的话,你的 make 文件将在你的环境中工作。

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


1
投票

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

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

0
投票

对于 Debian 11 和 Ubuntu 22.04 我只是运行:

sudo apt-get install libcppunit-dev

现在可以了

© www.soinside.com 2019 - 2024. All rights reserved.