我已经使用Google谷歌搜索和安装库已有一段时间了,但是我无法完全解决autoconf这个问题。
我已经下载了要编译的程序,进行了一些更改,并且需要分别运行autogen.sh和./configure并进行安装。
但是,当我尝试运行autogen.sh时,出现以下错误;
configure.ac:225: error: possibly undefined macro: AM_PATH_GTK_2_0
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
所以我继续下载了autoconf-2.68,automake-1.11,m4-1.4.16,并尝试了sudo apt-get install libgtk2.0-dev,但都没有改变结果。当我尝试aclocal时,我再次收到错误消息
configure.ac:225: warning: macro `AM_PATH_GTK_2_0' not found in library
我目前陷入困境,无处可去。所以我很乐意提出任何建议。
最佳答案
给定名称AM_PATH_GTK_2_0,将进行以下观察序列:
1)“AM_”位于自动制作的 namespace 中,因此m4宏必须来自自动制作。
2)嗯,它不在自动制作中。
3)它可能来自gtk,因此gtk开发人员在命名时犯了一个错误
他们的m4宏与automake冲突。那是gtk中的错误,但我可能需要
下载最新版本的gtk以获得宏。
问题是您没有gtk期望的m4宏。您可能需要安装libgtk-devel(或类似的东西)。如果我是正确的,而libgtk确实安装了一个名为AM _...的m4宏,请向开发者报告这是一个错误。他们踩踏了automakes的命名空间(不幸的是,这是一个非常常见的错误。)
由于您提到下载自动制作,所以我认为问题在于您正在运行的aclocal不在/usr/share/aclocal中,而是在其他位置(即,您在/usr/local中安装了automake)当您安装libgtk-开发人员,它可能已将* .m4文件安装在/usr/share/aclocal中,但是您需要在/usr/local/share/aclocal(或$ prefix/share/aclocal中安装该文件,其中前缀是用于安装automake的文件) 。)最简单的解决方案是将文件复制到$(aclocal --print),即运行“aclocal --print”以查看aclocal在哪里寻找m4文件,然后找到安装了libgtk-dev的文件,该文件定义了命名不正确的m4宏,然后将该文件复制到适当的位置。另外(可能是一个更好的解决方案),您可以在$(aclocal --print)中放置一个名为dirlist的文件,该文件包含单行“/usr/share/aclocal”,以便您手动安装的aclocal将始终查找以下文件:安装在/usr/share中。
关于linux - Ubuntu 11.04上的autoconf错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7805815/