zoukankan      html  css  js  c++  java
  • Linux执行可执行文件提示No such file or directory的解决方法(转)

    最近在使用Linux操作系统执行一个可执行文件,结果出现了No such file or directory的提示,表示很疑惑。

    ./tshrf

    bash: ./tshref: No such file or directory

    查看文件信息,可以看到文件是存在的,并且是可以执行的。

    -rwxr-xr-x 1 yuan yuan 20581 4月 29 2004 tshref

    查阅资料后,原因是系统位数与该可执行文件需要的lib库位数不匹配。

    用uname命令打印系统信息,发现系统是64位系统

    uname -a

    Linux yuan-vm 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

    用file命令查看文件信息,发现是一个32位可执行文件。

    file ./tshref

    ./tshref: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
    dynamically linked (uses shared libs), for GNU/Linux 2.2.5, not stripped

    要想在64位系统上与运行32位程序,则需要安装32位lib库。
    对于Ubuntu用户可以使用下面的命令安装。

    sudo apt-get install ia32-libs

    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    Package ia32-libs is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source
    However the following packages replace it:
    lib32z1 lib32ncurses5 lib32bz2-1.0

    过程中有可能找不到需要的库,但是会有几个替代包,选择安装其中一个。

    sudo apt-get install lib32bz2-1.0

    lib32bz2-1.0

    然后就可以正常运行之前的可执行文件了。

    遇到这种问题其实还有可能是其他原因,例如文本的编码格式问题等,本文仅提出了一种解决方法,读者遇到相同问题要具体问题具体分析。

    点赞 42
    收藏
    分享

    ————————————————
    版权声明:本文为CSDN博主「YuanYuan_Tech」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/sun927/article/details/46593129

  • 相关阅读:
    windows 核心编程 第2章 U n i c o d e
    在一个类内不可以定义自身类的对象,为什么定义自身类的静态对象又是正确的
    将JPG图片绘制在对话框背景上:(这段代码绝对可以执行)
    小技巧给CEdit设置字体
    惠普 升级两年保修
    DoModal返回1,对话框不能显示,今天碰到项目在用unicode编码,和多字符编码时候出现的
    MFC 绘图
    CString类所有成员函数详解
    mysql 一些问题
    错误:不能实例化抽象类
  • 原文地址:https://www.cnblogs.com/erhu-67786482/p/12610414.html
Copyright © 2011-2022 走看看