我正在做一个项目,需要在 ARM 处理器上编译一个 C++ 包装器,同时还要做一个使用 C++ 包装器的 Python 项目。它运行在装有 64 位 Debian 10 的 Rock Pi E 上。
对于 C++ 包装器,因为我必须使用的库之一仅适用于 ARM 架构的 32 位,并且我无法重新编译它,所以我必须使用它g++:armhf
来编译我的项目,因为我不能有一个混合 32 位和 64 位的项目。
另一方面,我在 python 中使用了这个包装器。我也用 安装了 32 位版本python:armhf
。我可以毫无问题地使用ctypes
它CDLL
。
我当前的问题发生在我尝试安装 python 模块时。因为我必须使用 pip,但是当我尝试使用 安装它时apt
,它只能在 64 位中找到它,这会覆盖 g++ 和 python 到 arm64。当我尝试使用 将 pip 强制为 ARM32 时python3-pip:armhf
,它只说它在某处被引用,但我找不到在哪里。
我看到了MSL——加载库可以让我有机会使用我的在我的 64 位 Python 脚本中编译了 32 位库,但是它需要一些 apt 无法找到的包,例如libgfortran3
。
据我所知,让它工作的最佳方法是找到一种pip3
在 32 位中安装的方法,并希望我使用的模块也兼容 32 位。
我认为另一种方法是让 MSL-loadlib 工作。但我需要一种方法来同时g++:armhf
编译安装的 c++ 和python,这似乎不可能。g++:arm64
我是否缺少了某些可以实现这一点的东西?
根据我的理解和一些评论告诉我的内容,我可能不得不询问并等待阻止我的 32 位库的更新版本。