Instale crossbuild-essential-armhf no amd64

Instale crossbuild-essential-armhf no amd64

No momento, enquanto trabalho no meu laptop (amd64), já consigo compilar código através de SSH em um BeagleBone (armhf).

O que estou tentando fazer agora é poder usar qualquer IDE para depurar esse código (Code::Blocks, KDevelop ou Qt Creator).

Então, pensei em rodar gdbserverno BeagleBone e conectar-me a ele, mas me deu um erro de valor inesperado na resposta. Eu li sobre isso e parece que preciso construir localmente um executável armhf para gdbprocessar. Mas acho que também precisa de um armhf gdbdesenvolvido para AMD64, então tentei instalar o crossbuild-essential-armhf. Para isso, adicionei a arquitetura armhf com dpkg --add-architecture armhf, mas não consigo fazer uma atualização do apt-get. Eu recebo muitos destes:

Err http://security.ubuntu.com trusty-security/main armhf Packages             
  404  Not Found [IP: 2001:67c:1562::13 80]

Se eu verificar os repositórios, eles realmente não têm armhf em lugar nenhum.

Então, o que estou fazendo de errado? Além disso, esta é a maneira correta de depurar remotamente com uma arquitetura diferente ou existe alguma maneira melhor de fazer isso?

Responder1

O Ubuntu usa repositórios separados para armh (ou seja, http://ports.ubuntu.com/). Para poder instalar o crossbuild-essential-armhf com sucesso, você deve seguir estas etapas:

  1. correrdpkg --add-architecture armhf

  2. especifique a arquitetura correta para TODAS as suas linhas apt deb em /etc/apt/sources.liste /etc/apt/sources.list.d, por exemplo:

    deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu trusty main universe
    deb [arch=armhf] http://ports.ubuntu.com/ trusty main universe
    

Observe que não faz sentido especificar o arco para linhas deb-src. 3. corra apt-get update 4. corraapt-get install crossbuild-essential-armhf

Dê uma olhada emhttps://wiki.debian.org/Multiarch/HOWTO

Você também pode executar esses comandos em um chroot (ou contêiner docker, talvez), conforme mencionado neste guia:Introdução ao MultiArch (armel/armhf) no Ubuntu

Responder2

Há uma grande variedade de compiladores cruzados baseados em Docker aqui:

https://github.com/dockcross/dockcross

Responder3

Não é necessário adicionar armhf às fontes dpkg do host de compilação. Outra abordagem é usar um chroot que pode ser preenchido usando debootstrap ou a partir de uma imagem beagleboard.org.

Para obter um guia completo sobre compilação cruzada de C++ com depuração simbólica remota de GDB com VS Code, consulte:

https://takeofftechnical.com/x-compile-cpp-bbb

informação relacionada