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
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 indeholderarm-linux-gnueabi
“), nårapt-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
arm-linux-gnueabi-gcc