Cum se instalează un compilator încrucișat pe Ubuntu 18.04?

Informațiile mele despre 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 

Am încercat:

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

Dacă merg pentru:

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

Cum se instalează cross-compiler?

Comentarii

  • Conform filelist , numele executabil al compilatorului este arm-linux-gnueabi-gcc

Răspuns

TLDR

trebuie să apelați arm-linux-gnueabi-gcc nu arm-linux-gcc.


Se pare că tocmai ați primit numele de fișier greșit. Pentru referință apt-file este un instrument util.

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

Acesta caută orice fișier care se termină gcc în orice pachet cu gcc-arm-linux-gnueabi în nume. Rezultatul este:

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

Deci, dacă aveți instalat gcc-arm-linux-gnueabi ar trebui să aveți un fișier /usr/bin/arm-linux-gnueabi-gcc.

Comentarii

  • A ști să căutați arm-linux-gnueabi înseamnă să cunoașteți deja răspunsul ;-). apt-file search -x 'arm-linux.*gcc$' ar fi mai ușor de descoperit.
  • Adevărat. A fost în întrebarea OP ' sub " Am încercat … " dar după cum spuneți, dacă ' nu știți, este utilă și o bună cunoaștere a expresiilor regulate.
  • Punctul meu este că OP nu știa ce comandă să rulez, așa că nu am putut ști ce să caut în conținutul pachetului (spre deosebire de numele pachetelor).
  • Nu aveam cunoștințe anterioare despre toate acestea înainte de a încerca să îl găsesc eu. Căutarea din răspunsul meu este construită din pachetul pe care l-au instalat deja și gcc la sfârșitul numelui comenzii – o generalizare a ceea ce încercau deja (arm-linux-gcc) – A fost primul lucru pe care l-am încercat ..
  • Cred că mi se pare surprinzător să folosesc apt-file search pentru a căuta un nume de pachet (după cum ați spus, „Aceasta caută toate pachetele pentru un fișier sau pachet care conține arm-linux-gnueabi”) când apt-file search caută numai conținutul pachetului găsește, de asemenea, întâmplător, numele pachetelor, datorită /usr/share/doc/<package>/copyright).

Răspuns

După cum sugerează steeldriver , ați instalat deja cross-compiler; problema este că utilizați comanda greșită pentru a o invoca, trebuie să utilizați prefixul arm-linux-gnueabi- în general. Așa că rulați

arm-linux-gnueabi-gcc 

sau

arm-linux-gnueabi-g++ 

și ar trebui să funcționeze bine.

Pentru a-ți da seama singur, poți folosi dpkg -L pentru a lista conținutul pachetelor pe care le-ai instalat:

dpkg -L gcc-arm-linux-gnueabi 

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *