[MontelLUG] Errore compilazione gcc arm

Diego diego.ml a zoho.com
Gio 18 Feb 2016 15:01:57 CET


In data martedì 16 febbraio 2016 23:01:56, Samuele ha scritto:
> Il 16/02/2016 21:49, Toni ha scritto:
> > {snip}
> > 
> > include path?
> 
> Rabaltando ancora una volta i termini di ricerca è saltato fuori che ci
> voleva sta altra versione delle librerie:
> 
> sudo apt-get install libnewlib-arm-none-eabi
> 
> al che dopo si è introiato con
> 
> ./mbed/platform.h:25:19: fatal error: cstddef: No such file or directory
>   #include <cstddef>
> 
> e dovrò cambiare versione di compilatore.
> Ho arm-none-eabi-gcc (4.8.2-14ubuntu1+6) 4.8.2 invece che
> arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.8.3
> 
> https://launchpad.net/~terry.guo/+archive/ubuntu/gcc-arm-embedded
> 
> e sperare che non ci siano altre sfighe.
> 
> Il solito inferno di dipendenze per compilare un cavolo di programma che
> fa 4 cose in croce...
> 

Ciò, cross-compilare non è proprio come prendere caffé e brioche al bar...

A vedere ti mancano pezzi, perché per cross-compilare serve non solo il 
compilatore, ma anche librerie per la piattaforma target e relativi header, 
oltre che il Makefile (o buildsystem) del programmino in questione sia scritto 
in modo da supportare il cross-compiling (cosa ovviamente non garantita, 
anzi).

Io mi trovo bene con la toolchain di Linaro che ha il suo relativo sysroot:
http://www.linaro.org/downloads/ (vedi in fondo)

Chiaramente se compili per una specifica piattaforma dovresti usare i relativi 
componenti userspace (header e librerie), per evitare il rischio di compilare 
a fronte di librerie troppo nuove per il tuo target o chissà quale ABI break.

Diego



Maggiori informazioni sulla lista montellug