Crosscompilare con Clang

Inserite qui le vostre guide, trucchi e consigli

Moderatore: ModiMaccanici

Avatar utente
Hammarby
Stato: Non connesso
Unix Expert
Unix Expert
Avatar utente
Iscritto il: gio, 29 ott 2009 14:28
Messaggi: 5395
Località: Stockholm, SE

Top

Questo è un breve tutorial per crosscompilare usando clang su OSX 10.13.6 ma che credo si adatti anche a versioni successive.
Prerequisiti sono l'ambiente relativo all'architettura target ed il relativo albero di sviluppo con il makefile adatto a clang.
Se provassimo a compilare con XCode, otterremmo un errore perché la versione rilasciata con High Sierra è obsoleta
ed Apple non consente l'aggiornamento, dobbiamo perciò installare una versione di clang aggiornata con brew

Codice: Seleziona tutto

brew install --build-from-source llvm 
Dopo un tempo piuttosto lunghetto, necessatio a ricompilare da zero tutto clang e llvm, il compilatore sarà disponibile,
ma ancora non utilizzabile in quanto OSX di default usa quello fornito da Apple.
Dovremo aggiungere questa riga in fondo al file .bash_profile nella directory $HOME

Codice: Seleziona tutto

export PATH="/usr/local/opt/llvm/bin:$PATH"
A questo punto digitando
clang --version
potremo verificare che il compilatore utilizzato è quello che abbiamo installato con brew.
Ancora non è sufficiente però per compilare il nostro codice per target diverso da quello del Mac ospite,
dobbiamo infatti fare in modo che l'albero di include sia quello corretto.
Nei makefiles del nostro progetto va inserita la clausola

Codice: Seleziona tutto

-I/(percorso completo dell'albero di include fornito con l'albero di sviluppo)/include
A questo punto possiamo finalmente eseguire una compilazione corretta.
Ognuno è come Dio lo ha fatto, ahimé...
...e spesso peggio.

Cervantes

Avatar utente
Scialla
Stato: Non connesso
Expert
Expert
Avatar utente
Iscritto il: mer, 12 ago 2009 19:27
Messaggi: 17906
Località: Torino

Top

Già faccio una fatica estrema a compilare due cavolate sotto Raspian.... direi che non è il "me mesté"
 Il futuro (Apple)? Nammerda!

Di un costoso Mac si può fare a meno, di macOS no... (cit. fax)

Rispondi

Torna a “Tutorial”

Chi c’è in linea

Visitano il forum: Nessuno e 10 ospiti