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