Sådan installeres cross-compiler på Ubuntu 18.04?

Min proc-info:

 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 

Jeg prøvede:

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

Hvis jeg går efter:

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

Sådan installeres cross-compiler?

Kommentarer

  • I henhold til fileliste er kompilatorens eksekverbare navn arm-linux-gnueabi-gcc

Svar

TLDR

du skal ringe til arm-linux-gnueabi-gcc ikke arm-linux-gcc.


Det ser ud til, at du lige har fået det forkerte filnavn. Til reference apt-file er et nyttigt værktøj.

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

Dette søger i enhver fil, der slutter gcc i enhver pakke med gcc-arm-linux-gnueabi i navnet. Resultatet er:

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

Så hvis du har installeret gcc-arm-linux-gnueabi du skal have en fil /usr/bin/arm-linux-gnueabi-gcc.

Kommentarer

  • At kende til arm-linux-gnueabi betyder allerede at kende svaret ;-). apt-file search -x 'arm-linux.*gcc$' ville være mere synlig.
  • Sandt. Det var i OP ' s spørgsmål under " Jeg prøvede … " men som du siger, hvis du ikke ' ikke ved, er godt kendskab til regulære udtryk også nyttigt.
  • Min pointe er, at OP ikke vidste, hvilken kommando at køre, så jeg kunne ikke vide, hvad jeg skulle søge efter i pakkeindholdet (i modsætning til pakkenavne).
  • Jeg havde ingen forudgående kendskab til noget af dette, før jeg selv forsøgte at finde det. Søgningen i mit svar er konstrueret af den pakke, de allerede har installeret og gcc i slutningen af kommandonavnet – en generalisering af hvad de allerede prøvede (arm-linux-gcc) – Det var den første ting, jeg prøvede ..
  • Jeg tror det bare er overraskende at bruge apt-file search til at lede efter et pakkenavn (som du siger det, “Dette søger i alle pakker efter en fil eller pakke, der indeholder arm-linux-gnueabi“), når apt-file search kun søger pakkeindhold (som finder i øvrigt også pakkenavne takket være /usr/share/doc/<package>/copyright).

Svar

Som steeldriver antyder, har du allerede installeret cross-compileren; problemet er, at du bruger den forkerte kommando til at påkalde den, du skal generelt bruge præfikset arm-linux-gnueabi-. Så kør

arm-linux-gnueabi-gcc 

eller

arm-linux-gnueabi-g++ 

, og det skal fungere fint.

For at finde ud af dette selv kan du bruge dpkg -L til at liste indholdet af de pakker, du har installeret:

dpkg -L gcc-arm-linux-gnueabi 

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *