配置错误:无法运行/bin/sh。

6
我正在尝试按照http://openrisc.net/toolchain-build.html上给出的指南,在Fedora虚拟机镜像中为OpenRISC构建GNU工具链。但是我遇到了错误提示。
Configure: error: cannot run /bin/sh ../gcc-svn/config.sub

当我尝试配置gcc时。

我是Linux的新手。我在网上找不到任何解决方案。非常感谢任何帮助来解决这个问题。

3个回答

9

用十六进制编辑器打开 config.sub,查看行尾是否为 \r\n 而不是只有 \n。如果是,则备份整个文件夹并输入以下命令:

dos2unix *

这将把所有的行尾从 \r\n 改为 \n,并且在原地进行更改,覆盖每个文件。然后,再次尝试:

./configure (带任何您想要的选项)

我在 Windows 的 cygwin 上遇到了这个问题,GitHub 已将所有文件转换为 \r\n,所以我必须使用 dos2unix 将它们转换回来。


1
或者不安装dos2unix:https://dev59.com/questions/zWgu5IYBdhLWcg3wDS6j#32912867 sed -i 's/\r$//' filename - weston
帮我解决了我的问题。非常感谢! - Václav Pavlíček

3

1.检查并安装libtools

yum install libtool       
yum install libtool-ltdl    
yum install libtool-ltdl-devel       

2.尝试通过shell运行"../gcc-svn/config.sub"

/bin/bash ../gcc-svn/config.sub

请查看是否显示如下内容:

[root@centos jemalloc]# /bin/bash ./config.sub
: command not foundine 6:
: command not foundine 8:
: command not foundine 30:
: command not foundine 31:
: command not foundine 39:
: command not foundine 42:
: command not foundine 50:
: command not foundine 57:
: command not foundine 59:
: command not foundine 72:
: command not foundine 82:
: command not foundine 85:
'/config.sub.bak: line 88: syntax error near unexpected token in
'/config.sub.bak: line 88: ` case $1 in

3.找到系统的config.sub文件。

 find / -name config.sub

它展示了:

/usr/share/libtool/config/config.sub

比较两个config.sub文件,看它们是否相似。

4.用系统文件替换config.sub

mv ../gcc-svn/config.sub ../gcc-svn/config.sub.bak
cp /usr/share/libtool/config/config.sub ../gcc-svn/config.sub 

mv ../gcc-svn/config.guess ../gcc-svn/config.guess.bak
cp /usr/share/libtool/config/config.guess ../gcc-svn/config.guess
  1. 测试一下是否可行。

2
我试图对一个库进行 ./configure,但是 config.guessconfig.sub 文件已经过时了。用 libtools 提供的文件替换了它们,结果非常顺利。谢谢! - Hernán Erasmo

1
你的../gcc-svn/config.sub文件的第一行是什么?我猜它可能有一个错别字。应该是:
#!/bin/sh

和不是

/bin/sh

如果它是 <\p>
#!/bin/sh

确保文件 /bin/sh 存在并且可执行
ls -l /bin/sh

应该显示类似于

的东西。
-rwxrwxrwx 1 root root 4 Feb  3  2009 /bin/sh

亲爱的我,我真的希望它不是全球可写的! :) - Tom Zych
:D 疏忽了。在我的机器上,实际上是 "lrwxrwxrwx 1 root root 4 Feb 3 2009 /bin/sh -> bash",但我认为这很令人困惑,因为我认为它通常不是一个链接。所以我很快删除了 "l",没有考虑其他的。好观点 ;) - ben
1
第一行是 #!/bin/sh,ls -l /bin/sh 给出了预期的输出。但问题仍然存在。 - Chethan N
配置文件config.sub是可执行的吗? - ben

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接