linux 64位编译环境下生成32位的执行文件

原编译环境是Ubuntu 32位,生成的执行文件运行在32位系统环境下

某天把编译环境放到虚拟机中,没注意下载Ubuntu 64位的 ,

编译过程中 链接 原来 32位系统产生的lib库,报 incompatible 错误,

重新在64位系统下生成新的lib库,编译通过,但是文件在32位系统下无法执行,这才意识到可能是系统版本有问题了,利用uname -a 看了下两边的系统信息,发现了区别。

搜索网上信息怎么解决,发现利用gcc 后加 -m32就可以编译成 32位的执行程序,修改makefile文件,重新make clean & make 搞定

其中搜索用到的知识是:

    ubuntu上如果要用 -m32 参数就要安装如下的库:

sudo apt-get install build-essential module-assistant
$ sudo apt-get install gcc-multilib g+±multilib

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值