错误的解释器:没有这样的文件或目录

错误的解释器:没有这样的文件或目录

我正在构建 autoconf-2.68。

我对这个工具不是很熟悉。然而,在分析Makefiles之后,我发现运行脚本时构建失败autoconf-2.68/bin/autom4te

我遇到这个错误:

bash: ./autom4te :/home/user/workspace/output: bad interpreter: No such file or directory

我所做的一些分析

echo $SHELL
/bin/bash

在 autom4te 中,我在 BEGIN 函数中找到了这一行

$ENV{'SHELL'} = '/bin/sh' if ($^O eq 'dos');

这会导致问题吗?有什么想法可以解决吗?

编辑

autom4te 的第一行是:

#! /home/user/Workspace/output/xx_yyyyyyy_pp88_tttttt_uuuuuuu_aaa_bbbbbbb/host/usr/bin/perl -w
# -*- perl -*-
# Generated from autom4te.in; do not edit by hand.

eval 'case $# in 0) exec /home/user/Workspace/output/xx_yyyyyyy_pp88_tttttt_uuuuuuu_aaa_bbbbbbb/host/usr/bin/perl -S "$0";; *) exec /home/user/Workspace/output/xx_yyyyyyy_pp88_tttttt_uuuuuuu_aaa_bbbbbbb/host/usr/bin/perl -S "$0" "$@";; esac'
if 0;

脚本调用者:

autoconf.in: $(srcdir)/autoconf.as $(m4sh_m4f_dependencies)
    $(MY_AUTOM4TE) --language M4sh --cache '' --melt $(srcdir)/autoconf.as -o $@

MY_AUTOM4TE定义为:

MY_AUTOM4TE = \
    autom4te_perllibdir='$(top_srcdir)'/lib                 \
    AUTOM4TE_CFG='$(AUTOM4TE_CFG)'         $(top_builddir)/bin/autom4te \
        -B '$(top_builddir)'/lib -B '$(top_srcdir)'/lib        # keep ` ' 

答案1

问题来自于以下解释器行autom4te

#! /home/user/Workspace/output/xx_yyyyyyy_pp88_tttttt_uuuuuuu_aaa_bbbbbbb/host/usr/bin/perl -w

看来路太长了。

这解释了错误输出:

bash: ./autom4te :/home/user/workspace/output: bad interpreter: No such file or directory

它停止output并且无法读取解释器的完整路径。通过更改解释器的路径(短路径):

#! /home/user/Workspace/output/xxx/host/usr/bin/perl -w

问题解决了。

相关内容