在64位linux下编译32位程序吗,在64位环境下编译32位的应用程序

在64位环境下编译32位的应用程序

发布时间:2008-09-23 16:01:21来源:红联作者:Mwany

用PITA算法做靶标预测的时候,要用到ViennaRNA包做结构的折叠,这个包是被修改过的,原来的包在我机子上是可以装的。但是这个修改过的包编译不通过。很奇怪的错误,不知道怎么改。

好在它有两个版本,64位和32位的。我弄到大型机上去编译32位的,也是出错,不过是命名空间的问题,我改两个头文件就可以通过了。最近又要算。那个大型机最近被搬走了。只能本机上做。

所以折腾了一下,在64位的系统里编译32位的程序。

CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 3800+

OS: Ubuntu 7.10/Linux 2.6.20-15-server #2 SMP Sun Apr 15 06:22:36 UTC 2007 x86_64 GNU/Linux

GCC: gcc (GCC) 4.1.2 (Ubuntu 4.1.2-0ubuntu4)

首先需要安装32位的兼容库

apt-get install ia32-libs libc6-dev-i386 linux32

1.用linux32命令在configure时改一下CHOST,设置一下编译环境

$ linux32 ./configure

#系统类型将变为:i686-pc-linux-gnu

#而不是x86_64-unknown-linux-gnu

2.设定GCC的参数

export CFLAGS="-m32 -04 -march=i386 -mtune=i386"

#最关键是-m32

-m32, -m64

Generate code for a 32-bit or 64-bit environment. The 32-bit environment sets int, long and pointer to 32 bits and generates code that runs on any i386 system. The 64-bit environment sets int to 32 bits and long and pointer to 64 bits and generates code for AMD's x86-64 architecture.

3.编译

make

4.安装

sudo make install

最终是成功地安装了。破PC机又得跑好多天了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值