64位ubuntu安装32位编译器

sudo apt-get update

sudo apt-get dist-upgrade 

sudo apt-get install build-essential module-assistant
sudo apt-get install gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386

sudo apt-get install lib32ncurses5 lib32z1 libc6:i386

Ubuntu运行32位程序可以使用如下方法:
第一步: 确认你有一个64位架构的内核

你可以打开终端然后输入:

dpkg --print-architecture 
你将会看到像下面这样的内容:

amd64 
这说明着你已经拥有了64位架构内核。

第二步: 确认你打开了多架构支持功能

(多架构支持可以让你在有64位库的情况下使用32位库。)

输入:

dpkg --print-foreign-architectures 
输出是:

i386 
如果你还没有多架构支持你需要打开它。

另一种第二步:打开多架构支持。

输入:

sudo dpkg --add-architecture i386 
sudo apt-get update 
然后就会开始下载更新然后运行。

之后你需要输入:

sudo apt-get dist-upgrade

当我们敲完上面的命令时就说明,已经支持一部分了,但是现在,我们的程序还不能完全运行

接着我们还要输入如下命令:

sudo apt-get install gcc-multilib g++-multilib

对于linux,64,32位,它们分配内存情况并不一样(同样的结构体)

编译遇到执行32位程序fail时,sudo apt-get install libdb1-compat tzdata

 

$ apt-cache depends "build-essential"

build-essential

|Depends: libc6-dev

Depends: <libc-dev>

  libc6-dev

Depends: gcc

Depends: g++

Depends: make

Depends: dpkg-dev

 

以下是过程实录:

vm建虚拟机ubuntu-16.04.6-desktop-amd64,build 32bit Linux base source code

apt-get update

apt-get dist-upgrade

apt-get install build-essential

apt-get install lib32ncurses5 lib32z1 libc6:i386

ln -sf /bin/bash /bin/sh

sudo apt-get install openjdk-8-jdk

apt-get install dos2unix

reboot

arm-none-linux-gnueabi-g++: internal compiler error: Killed (program cc1plus)

sudo dd if=/dev/zero of=/swapfile bs=64M count=16
#count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count=1024MB
sudo mkswap /swapfile
#把刚才空间格式化成swap格式
sudo swapon /swapfile
#使用刚才创建的swap空间
之后继续执行你的相关操作就可以了
you may wish to shut the swap space down: 
sudo swapoff /swapfile
sudo rm /swapfile


error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
sudo apt-get install lib32stdc++6
sudo apt-get install lib32z1

build ok

如果你遇到了在64位Ubuntu机器上无法运行i686交叉编译器的问题,可以尝试以下几个步骤来解决: 1. 确认系统架构:首先,使用 `uname -m` 命令确认你的系统架构是否为x86_64,因为i686是针对32位系统设计的,而你的Ubuntu系统可能是64位的。 2. 安装必要的支持包:64位系统可能需要安装一些额外的支持包来允许运行32位应用程序。使用以下命令安装这些支持包: ```bash sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6 ``` 这些包提供了32位版本的zlib、ncurses和C++标准库等依赖项。 3. 安装32位库文件:为了能够运行32位的应用程序,可能还需要安装32位版本的系统库文件。可以使用以下命令安装这些库: ```bash sudo apt-get install ia32-libs ``` 请注意,`ia32-libs` 包已经在许多Ubuntu版本中被废弃,如果找不到这个包,你可能需要使用其他方式来安装32位库。 4. 设置环境变量:交叉编译器通常需要设置特定的环境变量才能正确运行。确保设置好如 `PATH` 等环境变量,让系统能够找到交叉编译器的可执行文件。 5. 使用兼容模式运行:如果上述步骤仍然无法解决问题,可以尝试使用 `linux32` 命令来为当前会话创建一个32位环境,然后在其内部运行交叉编译器。执行命令如下: ```bash linux32 ./i686-交叉编译器 ``` 6. 检查错误信息:如果仍然遇到问题,检查输出的错误信息,这可能会给出为什么交叉编译器无法运行的具体原因。根据错误信息进行针对性的解决。 请在尝试上述步骤后,确认问题是否得到解决,并注意在操作过程中保持系统的稳定性和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值