在 amd64 上安装 crossbuild-essential-armhf

Joa*_*cho 5 arm cross-compilation

现在,在我的笔记本电脑 (amd64) 上工作时,我已经可以在 BeagleBone (armhf) 上通过 SSH 编译代码。

我现在要做的是能够使用任何 IDE 来调试该代码(Code::Blocks、KDevelop 或 Qt Creator)。

所以,我想gdbserver在 BeagleBone上运行并连接到它,但它给了我一个意想不到的回复错误。我读过它,似乎我需要在本地构建一个 armhf 可执行文件以gdb进行处理。但我想它还需要gdb为 amd64 构建的面向 armhf 的,所以我尝试安装crossbuild-essential-armhf. 为此,我添加了 armhf 架构dpkg --add-architecture armhf,但随后我无法进行 apt-get 更新。我得到了很多这些:

Err http://security.ubuntu.com trusty-security/main armhf Packages             
  404  Not Found [IP: 2001:67c:1562::13 80]
Run Code Online (Sandbox Code Playgroud)

如果我检查 repos,他们确实在任何地方都没有 armhf。

那么,我做错了什么?另外,这是使用不同架构进行远程调试的正确方法,还是有更好的方法来做到这一点?

小智 14

Ubuntu 为 armh(即http://ports.ubuntu.com/)使用单独的存储库。为了能够成功安装 crossbuild-essential-armhf,您必须按照以下步骤操作:

  1. dpkg --add-architecture armhf

  2. 指定在所有你容易DEB线正确的体系结构/etc/apt/sources.list/etc/apt/sources.list.d,例如:

    deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu trusty main universe
    deb [arch=armhf] http://ports.ubuntu.com/ trusty main universe
    
    Run Code Online (Sandbox Code Playgroud)

请注意,为 deb-src 行指定拱形是没有意义的。3. 跑apt-get update 4. 跑apt-get install crossbuild-essential-armhf

看看https://wiki.debian.org/Multiarch/HOWTO

您可能还想在本指南中提到的 chroot(或 docker 容器)中执行这些命令:Ubuntu 中的 MultiArch (armel / armhf) 入门