当我使用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. Spring4+Spring MVC+MyBatis整合思路

    1.Spring框架的搭建 这个很简单,只需要web容器中注册org.springframework.web.context.ContextLoaderListener,并指定spring加载配置文件 ...

  2. LINQ to SQL和Entity Framework

    LINQ to SQL和Entity Framework都是一种包含LINQ功能的对象关系映射技术. 那么为什么会有LINQ这个东西的出现呢. 简单来说LINQ是为了满足不知道怎么操作数据库的程序员开 ...

  3. python自动化之图像

    ''' RGBA值:指定颜色中的红.绿.蓝和alpha(透明度)的值 RGBA                                            名称 (255,255,255,2 ...

  4. BZOJ3439 Kpm的MC密码(可持久化trie)

    将串反过来就变成查询前缀了.考虑建一棵可持久化trie,查询时二分答案,均摊一下复杂度即为O(mlogn). #include<iostream> #include<cstdio&g ...

  5. P4838 P哥破解密码

    题目背景 P哥是一个经常丢密码条的男孩子. 在ION 8102赛场上,P哥又弄丢了密码条,笔试满分的他当然知道这可是要扣5分作为惩罚的,于是他开始破解ION Xunil系统的密码. 题目描述 定义一个 ...

  6. 记一次java程序out of memory问题

    在一个比较大批量的pdf转String项目中遇到了:java.lang.OutOfMemoryError: Java heap space错误 第一反应肯定是程序没有写好,大量循环时没有把程序中没有用 ...

  7. Smallest Minimum Cut HDU - 6214(最小割集)

    Smallest Minimum Cut Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Oth ...

  8. Pentaho的Mondrian对Hive的支持

    需求描述 考虑直接在Hive或者Impala等Big Data方案,能够支持MDX查询,现调研一下Mondrian对hive的支持情况. 环境准备 hive环境,采用hive-0.10-cdh4.2. ...

  9. 【转】关于在linux下清屏的几种技巧

    在windows的DOS操作界面里面,清屏的命令是cls,那么在linux 里面的清屏命令是什么呢?下面笔者分享几种在linux下用过的清屏方法. 1.clear命令.这个命令将会刷新屏幕,本质上只是 ...

  10. 【NOI 2018】屠龙勇士(扩欧)

    题意理解错了... 一把剑打一条龙,打了$x$次后如果龙不死,你就Game Over了. 显然,面对每条龙使用的剑是固定的,如果所有龙中有一条没打死你就挂了. 可以知道,可行的答案集合就是所有龙的可行 ...