我正在尝试构建一个库,README 说明是调用configure.ac,然后make。
不幸的是,我遇到了一个错误:
configure.ac:75 :error: possibly undefined macro: AC_PROG_LIBTOOL
If this token is legitimate please use m4_pattern_allow
Run Code Online (Sandbox Code Playgroud)
现在,我知道我已经安装了 libtool(我正在运行 Scientific Linux 6.2(未升级),并使用 yum --downloadonly 来获取 automake、autoconf、libtool 和 libtool-devel 的 rpm,以防万一)。
它们已安装,libtool 当前位于 /usr/share/libtool。但是,autoconf 似乎无法找到它。
所有的谷歌结果都是“安装 libtool”类型的,这对我没有任何帮助。任何帮助或指导将不胜感激。我不确定问题是否是 rpm -i 在这里获取 libtool 搞砸了,或者我是否需要将 /usr/share/libtool 链接到其他地方(以便其他任何东西都可以找到它)。
小智 15
我对我在 Internet 上的各种论坛上找到的所有“只需重新安装”的答案都不满意,因此必须并决心在不安装非发行版 libtool 的情况下解决此问题。(我在 CentOS 7 上运行。)
当我阅读https://www.gnu.org/software/automake/manual/html_node/Macro-Search-Path.html时,我头上的灯泡亮了。用于查找宏文件的搜索路径是由 定义的路径--prefix,默认情况下通常是/usr/local. 因此,将安装用于/usr/local搜索/usr/local/share/aclocal-APIVERSION和/usr/local/share/aclocal.
在许多发行版上,包括 CentOS7,七个宏文件libtools安装/usr/share/aclocal在/usr/local/share/aclocal. 因此,当您正在构建的包将前缀设置为/usr/local.
如果您已经有一个/usr/local/share/aclocal目录,要解决这个问题,请以 root 身份键入以下内容:
for file in argz libtool ltdl ltoptions ltsugar ltversion lt~obsolete
do
ln -s /usr/share/aclocal/$file.m4 /usr/local/share/aclocal/$file.m4
done
Run Code Online (Sandbox Code Playgroud)
如果您没有/usr/local/share/aclocal目录,要解决此问题,请以 root 身份键入以下内容:
ln -s /usr/share/aclocal /usr/local/share/aclocal
Run Code Online (Sandbox Code Playgroud)
瞧——问题解决了。
haw*_*w3d 14
你必须安装 libtool
在 ubuntu 中:
sudo apt-get install libtool
Run Code Online (Sandbox Code Playgroud)
在基于红帽:
yum install libtool
Run Code Online (Sandbox Code Playgroud)
小智 10
我还将 libtool 和其他安装到非标准目录,这个错误实际上是 autoconf 无法找到 libtool 的 m4 宏。是的,这可能是由于未安装 libtool 引起的,也可能是由于它位于非标准安装目录中。这是我的修复:
export ACLOCAL_PATH=$HOME/install/libtool/share/aclocal:$ACLOCAL_PATH
Run Code Online (Sandbox Code Playgroud)
我把它放在我的 .bash_profile
| 归档时间: |
|
| 查看次数: |
23222 次 |
| 最近记录: |