当我使用ldd查找Drcom所缺少的32为库的时候提示not a dynamic executable

最后网上找到答案

来自http://forum.ubuntu.org.cn/viewtopic.php?t=462532

内容如下

DrCOM linux 版
DrClient linux 版

一个32位的可执行文件DrClientLinux, 在我的64位系统上无法运行.

代码:
$ ./DrClientLinux
-bash: ./DrClientLinux: No such file or directory
代码:
$ ldd DrClientLinux
not a dynamic executable

本来想把这个文件缺少的32动态连接库都装齐,但是这ldd无法显示, ldd是看这个可执行二进制文件依赖依赖哪些动态链接库的。

网上找到答案:

代码:
$ readelf -l DrClientLinux | grep ld-linux
[Requesting program interpreter: /lib/ld-linux.so.2]

附上readelf的使用

readelf命令是Linux下的分析ELF文件的命令,这个命令在分析ELF文件格式时非常有用,下面以ELF格式可执行文件test为例详细介绍:

readelf -v

显示版本

readelf -h

显示帮助

readelf -a test

显示test的全部信息

readelf -h test
显示test的ELF Header的文件头信息(就是ELF文件开始的前52个字节) readelf -l test
显示test的Program Header Table中的每个Prgram Header Entry的信息(如果有) readelf -S test
显示test的Section Header Table中的每个Section Header Entry的信息(如果有) readelf -g test
显示test的Section Group的信息(如果有) readelf -s test
显示test的Symbol Table中的每个Symbol Table Entry的信息(如果有) readelf -e test 显示test的全部头信息(包括ELF Header,Section Header和Program Header,等同与 readelf -h -l -S test) readelf -n test 显示test的note段的信息(如果有) readelf -r test 显示test中的可重定位段的信息(如果有) readelf -d test 显示test中的Dynamic Section的信息(如果有) readelf -V test 显示test中的GNU Version段信息(如果有) 其实上述的命令只是把ELF文件格式的不同部分输出而已,只要了解ELF文件格式后这些命令就不难了啦~~

找了一下,

代码:
$ locate ld-linux.so.2

没有返回
再找

代码:
$ locate ld-linux
/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
/lib64/ld-linux-x86-64.so.2

所以知道缺少32位版本,于是

代码:
$ sudo apt-get install libstdc++6:i386

再次找ld-linux

代码:
$ sudo updatedb
$ locate ld-linux.so.2
/lib/ld-linux.so.2
/lib/i386-linux-gnu/ld-linux.so.2

再次对它ldd

代码:
$ ldd DrClientLinux
   linux-gate.so.1 => not found
   libSM.so.6 => not found 
   libICE.so.6 => not found 
   libXi.so.6 => not found 
   libXrender.so.1 => not found 
   libXrandr.so.2 => not found 
   libXcursor.so.1 => not found
   libXinerama.so.1 => not found 
   libfreetype.so.6 => not found
....

返回的就是它需要的动态链接库了, 找到其中not found的项, 如

代码:
libSM.so.6 => not found


使用命令安装:

代码:
$ sudo apt-get install libSM6:i386

可以发现, 安装的包的名字由缺少的库的 名字+版本+:+类型 决定的, 如 libfreetype.so.6 对应的包就是 libfreetype6:i386
就是这样把所有not found的库都装上, 这样这个二进制程序应该就可以使用了.
对于我这个程序, 执行完下面的命令就会看到登录窗口了.

代码:
./DrClientLinux

当遇到not a dynamic executable时怎么做的更多相关文章

  1. ARIMA模型——本质上是error和t-?时刻数据差分的线性模型!!!如果数据序列是非平稳的,并存在一定的增长或下降趋势,则需要对数据进行差分处理!ARIMA(p,d,q)称为差分自回归移动平均模型,AR是自回归, p为自回归项; MA为移动平均,q为移动平均项数,d为时间序列成为平稳时所做的差分次数

    https://www.cnblogs.com/bradleon/p/6827109.html 文章里写得非常好,需详细看.尤其是arima的举例! 可以看到:ARIMA本质上是error和t-?时刻 ...

  2. openerp模块收藏 auto_setup 自动帮你完成建新库时必做几个操作(转载)

    auto_setup 自动帮你完成建新库时必做几个操作 原文:http://shine-it.net/index.php/topic,6777.0.html 模块地址: https://github. ...

  3. ldd可执行程序时返回not a dynamic executable

    原因:32位程序放在64位机器上或64位程序放在32位程序上了 解决方法:如果是32位程序放在64位系统上则安装yum -y install libstdc++.i686,64位则是yum -y in ...

  4. iOS端临近封包时要做哪些事情?

    iOS封包前的注意事项: 0.功能测试,打点测试都已OK 1.创建case,使用master执行此轮case,修改版本号 2.建议使用各个系统的机型,如8,9,10,11,12, iPad等 3.ma ...

  5. 遇到问题或bug时要做的事。

    1,做事细心,只有细心才能减少bug量,做总结. 2,开发中遇到bug和错误,第一要想到是程序代码的问题.而首先想到的不是其他问题(比如版本,框架或兼容问题等). 3,程序不能按照自己的意愿执行,时先 ...

  6. javascript 使用 load 和 unload 事件,解决浏览器打开和关闭时需要做的操作。

    最近有一个业务,就是修改一个业务需要加上锁.也就是打开浏览器时,加锁.等用户操作完毕,关掉浏览器之后在把锁打开.一开始想问题很局限.只是想着,关闭浏览器解锁,刷新页面不做操作.然后就一直在找在调用un ...

  7. Mybatis与Spring集成时都做了什么?

    Mybatis是java开发者非常熟悉的ORM框架,Spring集成Mybatis更是我们的日常开发姿势. 本篇主要讲Mybatis与Spring集成所做的事情,让读过本文的开发者对Mybatis和S ...

  8. MHA在监控和故障转移时都做了什么

    转自 https://blog.csdn.net/ashic/article/details/75645479 以下是MHA(masterha_manager)在监控和故障切换上的基本流程 验证复制配 ...

  9. iOS 应用程序启动时要做什么

    当您的应用程序启动(无论是在前台或后台),使用您的应用程序委托application:willFinishLaunchingWithOptions:和application:didFinishLaun ...

随机推荐

  1. 【Python】Python文件系统功能:os模块

    1.os模块方法分类 (1)目录: chdir() 改变工作目录 chroot() 设定当前进程的根目录 listdir() 列出指定目录下的所有文件名 mkdir() 创建指定目录 makedirs ...

  2. c++11 标准库函数 std::move 和 完美转发 std::forward

    c++11 标准库函数 std::move 和 完美转发 std::forward #define _CRT_SECURE_NO_WARNINGS #include <iostream> ...

  3. winrar 授权破解过期解决

    RAR registration data Federal Agency for Education 1000000 PC usage license UID=b621cca9a84bc5deffbf ...

  4. 谷歌钦定的编程语言Kotlin大揭秘

    第一时间关注程序猿(媛)身边的故事 谷歌钦定的编程语言Kotlin大揭秘 语法+高级特性+实现原理:移动开发者升职加薪宝典! 谷歌作为世界级的科技公司巨头,强悍的技术研发与创新能力使其一直是业界的楷模 ...

  5. Android热修复原理(一)热修复框架对比和代码修复

    在Android应用开发中,热修复技术被越来越多的开发者所使用,也出现了很多热修复框架,比如:AndFix.Tinker.Dexposed和Nuwa等等.如果只是会这些热修复框架的使用那意义并不大,我 ...

  6. python之插入排序

    插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的.个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2).是稳定的排序方法.插入算法把要排序的数组分成两部 ...

  7. Kerberos无约束委派的攻击和防御

    0x00 前言简介 当Active Directory首次与Windows 2000 Server一起发布时,Microsoft就提供了一种简单的机制来支持用户通过Kerberos对Web服务器进行身 ...

  8. BZOJ.4034 [HAOI2015]树上操作 ( 点权树链剖分 线段树 )

    BZOJ.4034 [HAOI2015]树上操作 ( 点权树链剖分 线段树 ) 题意分析 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 ...

  9. HDU.2147 kiki's game (博弈论 PN分析)

    HDU.2147 kiki's game (博弈论 PN分析) 题意分析 简单的PN分析 博弈论快速入门 代码总览 #include <bits/stdc++.h> using names ...

  10. 解题:CF983B pyramid

    题面 题目都告诉我们是“金字塔”了,不妨分析分析$f$的性质 $f(a_1,a_2)=f(a_1$ $xor$ $a_2)=a1$ $xor$ $a_2$ $f(a_1,a_2,a_3)=f(a_1$ ...