首页 > 解决方案 > 如何为在 x86 主机上为 arm 目标交叉编译的项目安装依赖项

问题描述

我正在尝试在 Debian Buster 上为同一操作系统的 x86 主机上的 armv7构建一个项目( https://wpewebkit.org/ )。

我能够成功安装 arm C++ 工具链,并且可以成功编译和运行琐碎的应用程序。

我卡住的地方是我要编译的许多项目需要我通常通过操作系统的包管理器(例如apt-get install libjpeg-dev)安装的许多依赖项。交叉编译时,看起来我可以下载make install我需要的源代码。然而,这个项目有数百个依赖项——下载和编译所有依赖项需要很长时间。同时这些依赖的arm版本已经存在于aptfor arm中。

如何在主机系统上安装这些依赖项的 armhf 版本并使它们可用于我的交叉编译工具链?我已经尝试过dpkg add-architecture armhf,然后通过安装,apt-get install libjpeg-dev:armhf但 cmake 似乎找不到已安装的依赖项。

标签: c++armdebiancross-platformapt

解决方案


@artless-noise 指南是一个很好的起点,但不幸的是,大多数指南对完成我想做的事情没有帮助(或者如果有,他们在解释如何完成我需要的事情时并不直截了当)。

我最终做的是使用qemu-debootstrap

sudo qemu-debootstrap --arch armhf buster /mnt/data/armhf http://deb.debian.org/debian/

然后只需使用sudo chroot /mnt/data/armhf,我就有了一个正常运行的 shell,我可以在其中apt-get执行任何我需要的东西,运行任何脚本并获取 armhf 二进制文件。


推荐阅读