LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1368|回复: 9

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

[复制链接]
发表于 2008-1-2 17:47:45 | 显示全部楼层 |阅读模式
在编译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呢。。。

各位老大帮帮我看看这是什么本质原因呢?
发表于 2008-1-2 19:26:48 | 显示全部楼层
是不是权限问题呢
回复 支持 反对

使用道具 举报

发表于 2008-1-2 20:13:53 | 显示全部楼层
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_win ... 667c7a0308814b.html
http://www.cnblogs.com/mxy1028/articles/437121.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-2 20:54:42 | 显示全部楼层
非常感谢两位兄弟相助,但是我这里的问题不是权限问题。是root用户,并且mount ls出来现在是绿色的,也就是可执行的意思了。看权限也是-rwxr-xr-x。
x是所有用户都有的。如果是权限问题的话,我也试过了。我故意设置成没有x的话bash会显示permission denied。现在却是说No such file or directory。。。
回复 支持 反对

使用道具 举报

发表于 2008-1-2 21:09:32 | 显示全部楼层
这个问题我也遇到过,好象是因为生成该可执行文件时连接的动态库与实际运行时的动态库不同所导致。
回复 支持 反对

使用道具 举报

发表于 2008-1-2 21:31:58 | 显示全部楼层
$PATH?
回复 支持 反对

使用道具 举报

发表于 2008-1-2 22:39:53 | 显示全部楼层
ldd  /path/to/gcc
应当就能看出问题了:找不到库,或者库文件有缺陷
回复 支持 反对

使用道具 举报

发表于 2008-1-3 08:35:41 | 显示全部楼层
file /usr/bin/mount输出什么?

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

不过,ldd应该可以啊,难道ldd也有问题?
回复 支持 反对

使用道具 举报

发表于 2008-1-5 01:42:02 | 显示全部楼层
重新编译gcc?

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

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

使用道具 举报

发表于 2008-1-11 06:45:02 | 显示全部楼层
Post by hohoxu_hao115;1802553
file /usr/bin/mount输出什么?

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

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表