我在 64 位 ARM 架构上运行 Ubuntu 20.04。
我正在尝试构建一些链接libi2c
(-li2c) 的代码。但是我希望能够同时构建本地架构和交叉编译(在本例中)armhf
。我遇到的问题是,当我尝试安装库的外部架构版本时,apt 想要删除本地版本(反之亦然)。
$sudo apt install libi2c-dev:armhf --no-install-recommends
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
i2c-tools libc6-dev:armhf libcrypt-dev:armhf libusb-0.1-4:armhf linux-libc-dev:armhf read-edid
Use 'sudo apt autoremove' to remove them.
Recommended packages:
i2c-tools:armhf
The following packages will be REMOVED:
libi2c-dev
The following NEW packages will be installed:
libi2c-dev:armhf
0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Need to get 7244 B of archives.
After this operation, 2048 B disk space will be freed.
Do you want to continue? [Y/n] n
Abort.
答案1
它应该被报告为错误。据我所知,目前最好的选择是将依赖于架构和不依赖于架构的标头、库和 dev 可执行文件拆分到不同的包中。
- arch-independent 将包含在所有架构的同一个包中
- 依赖于架构,每个架构都有自己的软件包,这些软件包至少可以在架构之间以相同的版本共同安装。使用安装路径三元组。
查看更多多架构十字架
作为解决方法,您可以
- 安装一个架构(本机优先)
- 手动提取其他架构
答案2
我是一名系统管理员,而不是开发人员,因此我不清楚在同一台主机上执行多架构库的理由。从系统广告的角度来看,我只会使用单独的虚拟机。您可能想尝试debians 多架构设置在这里。本质上需要创建一个模拟层。