1. 问题描述
将交叉编译工具链拷贝到新的虚拟机(Ubuntu16系统)中发现出现编译工具文件不存在的报错。一开始以为是由于公司电脑加密,拷贝下来有问题,无法识别,最后和同事讨论,发现是系统和交叉编译工具的位数不相同的问题。
2. 问题原因
交叉编译工具链是32位的,编译的虚拟机是64位,需要安装32位的编译环境,需要安装依赖。
3. 解决办法
3.1 更新apt-get
sudo apt-get update
3.2 安装依赖包
sudo apt-get install gcc-multilib g+±multilib libc6:i386 libc6-dev-i386 -y
sudo apt-get install zlib1g:i386 zlib1g-dev:i386 libz1:i386 lib32ncurses5 lib32z1 -y
4. 如果还未解决
4. 1 确认你有一个bai64位架构的内核
你可以打开终端然后输入:
dpkg --print-architecture
你将会看到像下面这样的内容:
amd64
这说明着你已经拥有了64位架构内核。
4. 2 确认你打开了多架构支持功能
(多架构支持可以让你在有64位库的情况下使用32位库。)
输入:
dpkg --print-foreign-architectures
输出是:
i386
如果你还没有多架构支持你需要打开它。
4.3 打开多架构支持。
输入:
sudo dpkg --add-architecture i386
sudo apt-get update
然后就会开始下载更新然后运行。
之后你需要输入:
sudo apt-get dist-upgrade
它会检查你已经拥有的库文件是否有更新的版本。
有的话,它会问你是否需要更新(y/n)。
如此这般,你就已经成功地为你的64位系统安装了32位支持了。
4. 4 运行下述语句即可
sudo apt install lib32ncursesw5 lib32ncursesw5-dev -y