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

rekjcdws  于 2023-03-06  发布在  Apache
关注(0)|答案(5)|浏览(178)

我正尝试在RedHat Linux机器上构建ZooKeeper。(ZooKeeper到底是什么可能并不重要:-)
当我按照 Package 说明操作时,我得到:

$ 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权限,系统团队有一个政策,即“不偏离”标准配置。)
我已经通过注解掉www.example.com文件中对AM_PATH_CPPUNI T的引用来解决这个问题configure.ac,但是我真正想做的是在我的个人目录中安装CPPPUNIT并指向它,但是在弄清楚如何告诉autoconf/autmake系统在非标准位置查找它方面,我没有取得多大进展。

qmelpv7a

qmelpv7a1#

您需要设置环境变量ACLOCAL_PATH。

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

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

ee7vknir

ee7vknir2#

在我的例子中,我得到这个错误是因为缺少cppunit-devel包。在yum -y install cppunit-devel将这个包安装到我的centos服务器上后,一切都运行良好。

omqzjyyz

omqzjyyz3#

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

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

另外,如果需要的话,您可以...(这会清除掉autoconf/configure命令留给您的Makefile中任何不工作的垃圾...)

make clean

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

  • 注意:这是我在我的Mac上所做的,通常是为了编译未经测试或不打算在Mac上运行的LINUX SW。这可能是错误的方法,但当没有太多的选项时,有时候你只需要进入那里,并与它混在一起。*
ru9i0ody

ru9i0ody4#

如果有多个路径,请使用以下命令添加它们:分隔符。例如:

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

dluptydi5#

对于Debian 11和Ubuntu 22.04,我只运行:
sudo apt-get install libcppunit-dev
现在它起作用了

相关问题