当前位置: 技术问答>linux和unix
我的程序是linux Redhat 32位下写的,用到了不少汇编,我希望在64位的环境下运行,不改代码,有办法吗?
来源: 互联网 发布时间:2016-03-18
本文导语: 我的程序是linux Redhat AS4 32位下写的,用到了不少汇编,我希望在64位的环境下运行,不改代码,有办法吗?因为用到了汇编,移植代码到64位工作量太大了,几乎类似重写了。我不知道64位Linux redhat是否提供了这种...
我的程序是linux Redhat AS4 32位下写的,用到了不少汇编,我希望在64位的环境下运行,不改代码,有办法吗?因为用到了汇编,移植代码到64位工作量太大了,几乎类似重写了。我不知道64位Linux redhat是否提供了这种虚拟32位环境的机制?是否能提供点资料,谢谢!!
|
编译好的32位二进制代码可以直接在64位环境下运行,但是要安装32位的兼容库。不同系统处理方式不一样,有的发行版安装的时候就会问你是否安装32位的库。
不过你可以直接试一下在64位下是否能够编译。
不过你可以直接试一下在64位下是否能够编译。
|
在我的64位CentOS5上,已经带了32位的库,有/lib也有/lib64,有/usr/lib也有/usr/lib64,一个rpm包有可能同时包含32位和64位的库,比如glibc-devel。
我在32位的SUSE下编译的二进制文件在CentOS下可以直接运行,ldd可以看出它连接的是/lib/libc.so.6,这是32位的库。
同样的源码我在CentOS5下编译,则会链接到/lib64/libc.so.6
CentOS和RHEL5是一样的。
其他系统你也可以自己研究一下。
有一个介绍Debian的文章:
http://www.debian-administration.org/articles/534
我在32位的SUSE下编译的二进制文件在CentOS下可以直接运行,ldd可以看出它连接的是/lib/libc.so.6,这是32位的库。
同样的源码我在CentOS5下编译,则会链接到/lib64/libc.so.6
CentOS和RHEL5是一样的。
其他系统你也可以自己研究一下。
有一个介绍Debian的文章:
http://www.debian-administration.org/articles/534