c++ - 如何为在 x86 主机上为 arm 目标交叉编译的项目安装依赖项
问题描述
我正在尝试在 Debian Buster 上为同一操作系统的 x86 主机上的 armv7构建一个项目( https://wpewebkit.org/ )。
我能够成功安装 arm C++ 工具链,并且可以成功编译和运行琐碎的应用程序。
我卡住的地方是我要编译的许多项目需要我通常通过操作系统的包管理器(例如apt-get install libjpeg-dev
)安装的许多依赖项。交叉编译时,看起来我可以下载make install
我需要的源代码。然而,这个项目有数百个依赖项——下载和编译所有依赖项需要很长时间。同时这些依赖的arm版本已经存在于apt
for arm中。
如何在主机系统上安装这些依赖项的 armhf 版本并使它们可用于我的交叉编译工具链?我已经尝试过dpkg add-architecture armhf
,然后通过安装,apt-get install libjpeg-dev:armhf
但 cmake 似乎找不到已安装的依赖项。
解决方案
@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 二进制文件。
推荐阅读
- image - 图像识别 api 和图像中的图像计数
- c# - 如何使用 C# 使用现代身份验证连接到邮箱
- vba - 是/否数据类型始终显示为真/假 - 布尔格式问题
- c++ - 如何通过悬停光标来获取 UIAutomationElement 的 NamePropertyId?
- python - 'string.format' 是否允许对迭代/字典进行更多控制?
- google-cloud-dataproc - GCP Dataproc:通过 Yarn Cluster 直接使用 Spark
- python - Python:如何在数据帧中使用 sklearn 函数?
- reactjs - 如何在 google-map-react 中显示谷歌地图标记
- sql - 按加入日期分组 + 在 sql 中添加月份
- python - KeyError:将列中的日期转换为日期时的时间戳