在 make 期间编译 nano 命中问题
Posted
技术标签:
【中文标题】在 make 期间编译 nano 命中问题【英文标题】:Compiling nano hitting problems during make 【发布时间】:2018-05-24 22:01:30 【问题描述】:我正在尝试编译 nano,但遇到了一些问题。
详情如下——我无法更改的版本(在s390架构上编译,无权访问其他版本):
纳米源版本 2.9.7 使用 autoconf 版本 2.62 使用 automake 1.10 版 更改了配置脚本,因此它通过更改配置行am__api_version='1.10'
来查找工具版本 1.10 而不是 1.15
我运行configure,然后运行make。在运行 make 我得到以下错误:
make
CDPATH="$ZSH_VERSION+.:" && cd . && /bin/sh /u/user/source/nano-2.9.7/missing aclocal-1.10 -I m4
main::scan_file() called too early to check prototype at /workarea/tools/automake/bin/aclocal-1.10 line 604.
configure.ac:27: error: Autoconf version 2.69 or higher is required
configure.ac:27: the top level
autom4te: /usr/local/bin/m4 failed with exit status: 63
aclocal-1.10: autom4te failed with exit status: 63
WARNING: 'aclocal-1.10' is probably too old.
You should only need it if you modified 'acinclude.m4' or
'configure.ac' or m4 files included by 'configure.ac'.
The 'aclocal' program is part of the GNU Automake package:
<http://www.gnu.org/software/automake>
It also requires GNU Autoconf, GNU m4 and Perl in order to run:
<http://www.gnu.org/software/autoconf>
<http://www.gnu.org/software/m4/>
<http://www.perl.org/>
FSUM8226 make: Error code 63
我在第一行注意到它说:CDPATH="$ZSH_VERSION+.:" && cd . && /bin/sh /u/user/source/nano-2.9.7/missing aclocal-1.10 -I m4
我不知道如何阅读此错误,因为aclocal-1.10
在我的路径上并已安装。当我从我的 bash shell 运行 aclocal-1.10
时,我得到:
aclocal-1.10
main::scan_file() called too early to check prototype at /workarea/tools/automake/bin/aclocal-1.10 line 604.
aclocal-1.10: `configure.ac' or `configure.in' is required
更新
我去了configure.ac的第27行并更改了行
AC_PREREQ([2.69])
到 AC_PREREQ([2.62])
。现在,当发出 make 命令时,它会失败并出现以下错误:
source/nano-2.9.7: >make
CDPATH="$ZSH_VERSION+.:" && cd . && /bin/sh /u/user/source/nano-2.9.7/missing aclocal-1.10 -I m4
main::scan_file() called too early to check prototype at /workarea/tools/automake/bin/aclocal-1.10 line 604.
(CDPATH="$ZSH_VERSION+.:" && cd . && /bin/sh /u/user/source/nano-2.9.7/missing autoheader)
autoheader: error: AC_CONFIG_HEADERS not found in configure.ac
FSUM8226 make: Error code 1
make: './config.h.in' removed.
请就如何绕过我的系统施加的限制提供指导和支持,以便编译我最喜欢的命令行编辑器!
【问题讨论】:
【参考方案1】:两个简单的解决方案:更新您的 autoconf 包。
或者修复你的时间戳,这样 autoconf 就不会被重新调用,例如通过触摸分发中的所有文件。
find . | xargs touch
【讨论】:
您能否更详细地解释一下修复时间戳的含义?我以前没有遇到过这个吗?此外,您确定您的解决方案可以解决问题的“更新”部分下的问题吗? 好吧更新,只是意味着开发人员将 autoconf 要求放在那里是有原因的。以上是关于在 make 期间编译 nano 命中问题的主要内容,如果未能解决你的问题,请参考以下文章
ccache 在不删除 CMake 文件的情况下不会命中缓存