0 前言
使用Ubuntu16.04(64bit)进行嵌入式开发时,默认情况下无法正常运行32位的交叉编译工具链,因此需要安装额外兼容包。
1 运行32位程序
若只是需要在Ubuntu16.04(64bit)中运行32bit程序, 只需要安装libc6:i386即可[3]:
sudo apt-get install -y libc6:i386
某些程序还需要用到lib32stc++6[4]:
sudo apt-get install -y lib32stdc++6
此外,还需要用到的库有lib32z1[5]
sudo apt-get install -y lib32z1
2 开发32位程序
在x64平台上开发32bit程序,还需安装如下库[6]:
sudo apt-get install -y gcc-multilib g++-multilib
然后编译程序时加上“-m32”参数即可[6]:
gcc test.c -m32
通过file命令查看编译出来的可执行文件,可确认它确实为32位的:

参考资料
[3]如何在ubuntu14.04(64位)编译运行32位程序
[4]error while loading libstdc++.so.6
[5]error while loading shared librarieserror while loading shared libraries: : libz.so.1