代码之家  ›  专栏  ›  技术社区  ›  Leonard

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

  •  7
  • Leonard  · 技术社区  · 15 年前

    我正在一个RedhatLinux盒子上构建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
    

    我不能在标准位置安装cppunit。(没有根权限,系统团队 具有与标准配置“无偏差”的策略。)

    我通过评论参考文献来解决这个问题。 AM_PATH_CPPUNI 在我的configure.ac文件中,但是我真正想做的是 是在我的个人目录中安装cppunit并指向它,但是我 在如何告诉autoconf/auotmake方面进展不大 系统在非标准位置查找。任何人都有任何暗示 如何做到这一点?

    4 回复  |  直到 9 年前
        1
  •  7
  •   anthony    15 年前

    要设置环境变量aclocal_path。

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

    要想找出指向aclocal_path所需的目录,您必须找到包含定义am_path_cppUnit的.m4文件的目录。

        2
  •  5
  •   Cloude Lee    11 年前

    在我的例子中,我得到这个错误是因为缺少cppunit devel包。在我的CentOS服务器上安装此软件包之后 yum -y install cppunit-devel 一切正常。

        3
  •  1
  •   Alex Gray    14 年前

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

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

    另外,如果推到推,你可以……(这将清除您的生成文件中的任何非工作垃圾,而autoconf/configure命令将这些垃圾留给您…)

    make clean
    

    打开你的“./configure”脚本,它是小朋友(任何名为“configure.*”的东西)。在文本编辑器中。然后,稍微小心地“找到并替换”任何“事情”的实例,把你搞得一团糟。一旦修复了配置脚本中的指令,并再次运行它们…幸运的是,您的make文件可以在您的环境中工作。

    注意:这是我在我的Mac上所做的,通常是为了编译Linux软件,而这些软件并没有经过测试或打算在Mac上运行。这可能是一个错误的方法,但是当没有很多选择的时候,有时候你只需要进入那里,然后把它弄脏。

        4
  •  1
  •   Franck Kallaway    9 年前

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

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