Como instalar o cross-compiler no Ubuntu 18.04?

Minhas informações proc:

 lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 158 Model name: Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz Stepping: 9 CPU MHz: 1036.788 CPU max MHz: 3500,0000 CPU min MHz: 800,0000 BogoMIPS: 6000.00 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 6144K NUMA node0 CPU(s): 0-3 

Eu tentei:

sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi 

Se eu buscar:

arm-linux-gcc arm-linux-gcc: command not found 

Como instalar o compilador cruzado?

Comentários

  • De acordo com a filelist , o nome do executável do compilador é arm-linux-gnueabi-gcc

Resposta

TLDR

você precisa ligar para arm-linux-gnueabi-gcc não arm-linux-gcc.


Parece que você acabou de digitar o nome de arquivo errado. Para referência apt-file é uma ferramenta útil.

sudo apt-get install apt-file sudo apt-file update apt-file search -x "gcc$" | grep "gcc-arm-linux-gnueabi" 

Pesquisa qualquer arquivo que termine em gcc em qualquer pacote com gcc-arm-linux-gnueabi no nome. O resultado é:

gcc-arm-linux-gnueabi: /usr/bin/arm-linux-gnueabi-gcc 

Então, se você tiver instalado gcc-arm-linux-gnueabi você deve ter um arquivo /usr/bin/arm-linux-gnueabi-gcc.

Comentários

  • Saber pesquisar por arm-linux-gnueabi significa já saber a resposta ;-). apt-file search -x 'arm-linux.*gcc$' seria mais detectável.
  • Verdadeiro. Estava na pergunta do OP ' em Eu tentei … , mas como você diz, se você ' não sabe, um bom conhecimento de expressões regulares também é útil.
  • Meu ponto é que o OP não sabia qual comando para executar, portanto, não poderia saber o que pesquisar no conteúdo do pacote (em oposição aos nomes dos pacotes).
  • Eu não tinha conhecimento prévio de nada disso antes de tentar encontrar sozinho. A pesquisa na minha resposta é construída a partir do pacote que eles já instalaram e gcc no final do nome do comando – uma generalização do que eles já estavam tentando (arm-linux-gcc) – Foi a primeira coisa que tentei.
  • Acho que acho surpreendente usar apt-file search para procurar um nome de pacote (como você colocou, “Isso pesquisa todos os pacotes para um arquivo ou pacote contendo arm-linux-gnueabi”) quando apt-file search pesquisa apenas o conteúdo do pacote ( também encontra acidentalmente nomes de pacotes, graças a /usr/share/doc/<package>/copyright).

Resposta

Como steeldriver sugere, você já instalou o compilador cruzado; o problema é que você está usando o comando errado para invocá-lo, você precisa usar o prefixo arm-linux-gnueabi- em geral. Então execute

arm-linux-gnueabi-gcc 

ou

arm-linux-gnueabi-g++ 

e deve funcionar bem.

Para descobrir isso sozinho, você pode usar dpkg -L para listar o conteúdo dos pacotes que você instalou:

dpkg -L gcc-arm-linux-gnueabi 

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *