linux64bit机器上运行32位的代码

今天再64bit的centos下,运行32bit下的二进制代码。 然后爆出了各种错误。

后来网上找了许多资料。 发现这个还比较靠谱:


我们知道在64bit的机器上可以运行32bit的代码, 那这里需要什么支持吗?
当然需要, 如果你没有安装必要的包, 你使用-m32参数会报下面这样类似的错误:
/opt/x86_open64-4.2.3.2/lib/gcc-lib/x86_64-open64-linux/4.2.3.2/mfef95: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory
不过我们安装了下面的几个包文件就可以正常运行了:
yum install glibc.i686
yum install glibc-devel
yum install libstdc++.i686
(记住也要安装i686的glibc和libstdc哟 ^-^)

转于:http://www.lupaworld.com/home-space-uid-434384-do-blog-id-241620.html


首先ldd filename  和file filename 分析二进制文件它属于多少位系统文件和它的依赖关系。


第二 , 抓住两点就行了。 第一要有支持执行32bit下的c/c++文件的lib库。 比如libstdc++.so.6。

其实它是一个指向libstdc++.so.6.0.13的符号连接。(可以ls -l  filename查看)

去下载一个32bit的libstdc++.so.6.0.13的文件,放到某个目录下。 比如/usr/lib下。 

然后建立符号连接: 

ln -s libstdc++.so.6.0.13  ibstdc++.so.6


第三, 设置LIB库路径。 

我这以/usr/lib为例:

export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值