+ -
当前位置:首页 → 问答吧 → 为什么可执行文件存在却不能执行?

为什么可执行文件存在却不能执行?

时间:2008-01-02

来源:互联网

在编译LFS的时候原先就出现过这个问题,上次是GCC,到了第6章的时候要make了,报gcc:No such file or directory,后来转到bin目录一看,ls可以看到gcc,但是确实./gcc不能执行,报了no such file or directory,就算ldd gcc也不行。

后来我又重新按照步骤来了一下就好了。这次我全部编译完了。reboot后进入了一次我自己编译出来的LFS系统了,那个激动啊。但是。。。

后来我reboot了一下后,在进入就不行了。我可什么事情都没有做啊。

这次的错误是报mount找不到了。情况和上次GCC一样。我去文件系统看了。明显就是存在的文件么。怎么说mount:No such file or directory呢。。。

各位老大帮帮我看看这是什么本质原因呢?

作者: warking   发布时间: 2008-01-02

是不是权限问题呢

作者: gsli52   发布时间: 2008-01-03

ls -l /usr/bin/gcc-4.1
-rwxr-xr-x 1 root root 206244 2007-09-29 23:46 /usr/bin/gcc-4.1

注意 -rwxr-xr-x 的x,表示它有可执行权限,
如果显示成: -rw-r--r--
就表示它不能被执行

加上可执行权限,用
chmod +x /usr/bin/gcc-4.1

更详细的信息,看看Linux的权限的基础知识:
http://hi.baidu.com/linux_vs_windows...a0308814b.html
http://www.cnblogs.com/mxy1028/articles/437121.html

作者: sofire   发布时间: 2008-01-03

非常感谢两位兄弟相助,但是我这里的问题不是权限问题。是root用户,并且mount ls出来现在是绿色的,也就是可执行的意思了。看权限也是-rwxr-xr-x。
x是所有用户都有的。如果是权限问题的话,我也试过了。我故意设置成没有x的话bash会显示permission denied。现在却是说No such file or directory。。。

作者: warking   发布时间: 2008-01-03

这个问题我也遇到过,好象是因为生成该可执行文件时连接的动态库与实际运行时的动态库不同所导致。

作者: wen   发布时间: 2008-01-03

$PATH?

作者: SCys   发布时间: 2008-01-03

ldd /path/to/gcc
应当就能看出问题了:找不到库,或者库文件有缺陷

作者: csfrank   发布时间: 2008-01-03

file /usr/bin/mount输出什么?

我遇到过两种情况会出现这种问题,一种是c库不同,比如,链接glibc的程序,在uClibc环境下运行,还有架构不同,比如,64位程序在32位系统上运行。

不过,ldd应该可以啊,难道ldd也有问题?

作者: hohoxu_hao115   发布时间: 2008-01-03

重新编译gcc?

也许你没有make install吧,猜的。

有人建议用
ldd /path/to/gcc
file /path/to/gcc
来查看原因,其它的就没看懂了。

作者: sofire   发布时间: 2008-01-05

引用:
作者: hohoxu_hao115
file /usr/bin/mount输出什么?

我遇到过两种情况会出现这种问题,一种是c库不同,比如,链接glibc的程序,在uClibc环境下运行,还有架构不同,比如,64位程序在32位系统上运行。

不过,ldd应该可以啊,难道ldd也有问题?
还有一种情况是 mount 挂载的分区被定义成 noexec 也会出现不容许执行文件不能执行的现像

作者: d00m3d   发布时间: 2008-01-11