informazioni su gcc e l'utilizzo di xcode su os x

Mac OS X e le sue Applicazioni

Moderatore: ModiMaccanici

iMarko41
Stato: Non connesso
Apprendista Maccanico
Apprendista Maccanico
Iscritto il: mar, 10 set 2013 10:59
Messaggi: 71

Top

Salve a tutti, dopo qualche anno mi ritrovo a scrivere in questo fantastico forum, sperando di chiarire alcuni dubbi riguardanti la programmazione in ambiente macintosh.

Veniamo al punto, i command line tools. Ho recentemente "scoperto" che essi sono compresi con l'ultima relase di Xcode. Rendendo superflua la loro instalazione manuale.
Io, abitualmente dopo un'installazione dell'ide di apple, apro Terminale ed eseguo il comando:

Codice: Seleziona tutto

xcode-select --install
Il comando scritto qui sopra mette la sua roba nella cartella:

Codice: Seleziona tutto

/Library/Developer/CommandLineTools
mentre gli stessi file sono contenuti "dentro" Xcode.app. Sbaglio?
Altra domanda lecita, è necessaria l'esecuzione del comando?

Inoltre, in un sistema in cui Xcode non è mai stato presente, scrivendo "gcc" nel terminale appare una finestra con su scritto di scaricare qualcosa, sono i command line tools, completi, vero?
MacBook Pro 15" Mid 2012: Intel Core i7 2,60GHz, 8GB Ram 1600MHz, Intel HD4000 + NVidia GeForce GT650m 1GB, SSD 512GB.

Avatar utente
faxus
Stato: Non connesso
Pro-Expert 
Pro-Expert 
Avatar utente
Iscritto il: lun, 02 giu 2014 15:12
Messaggi: 30459
Località: Circondato dalle bufale

Top

Contatta:
iMarko41 ha scritto:... i command line tools. Ho recentemente "scoperto" che essi sono compresi con l'ultima relase di Xcode. Rendendo superflua la loro instalazione manuale...
È così sin dai tempi di Xcode 5.

Li puoi installare singolarmente o con Xcode.
A seconda delle necessità, per esempio servono anche senza Xcode per installare brew
viewtopic.php?p=329620#p329620" onclick="window.open(this.href);return false;
iMarko41 ha scritto:... gli stessi file sono contenuti "dentro" Xcode.app. Sbaglio?...
No, se li hai scaricati in "bundle"
iMarko41 ha scritto:... in un sistema in cui Xcode non è mai stato presente, scrivendo "gcc" nel terminale appare una finestra con su scritto di scaricare qualcosa, sono i command line tools, completi, vero?
È così.

Le librerie GCC sono contenute in Xcode.
Ma per installarle puoi farlo tramite i Command line tools, senza installare tutto Xcode.
Gcc è un comando che puoi eseguire solo se presenti.
Terminale lo rileva e ti chiede di installarli

iMarko41
Stato: Non connesso
Apprendista Maccanico
Apprendista Maccanico
Iscritto il: mar, 10 set 2013 10:59
Messaggi: 71

Top

Grazie, chiarissimo!
faxus ha scritto: No, se li hai scaricati in "bundle"
Cosa intendi per "bundle"?

Chiedendo a Terminale

Codice: Seleziona tutto

whereis gcc
xcrun --find gcc
Ottengo:

Codice: Seleziona tutto

/usr/bin/gcc
/Applications/Xcode.app/Contents/Developer/usr/bin/gcc
Molto probabilmente fraintendo lo scopo dei comandi whereis e xcrun --find..
Inoltre in "/Library/Developer/CommandLineTools" per l'ennesima volta vedo gcc. Tutti questi sono doppioni?
MacBook Pro 15" Mid 2012: Intel Core i7 2,60GHz, 8GB Ram 1600MHz, Intel HD4000 + NVidia GeForce GT650m 1GB, SSD 512GB.

Avatar utente
faxus
Stato: Non connesso
Pro-Expert 
Pro-Expert 
Avatar utente
Iscritto il: lun, 02 giu 2014 15:12
Messaggi: 30459
Località: Circondato dalle bufale

Top

Contatta:
iMarko41 ha scritto:
faxus ha scritto: No, se li hai scaricati in "bundle"
Cosa intendi per "bundle"?...
È un lapsus! Scusa.

Volevo dire: Sì, se li hai scaricati in "bundle".
Bundle nel senso di pacchetto completo.
https://it.wikipedia.org/wiki/Bundle" onclick="window.open(this.href);return false;
iMarko41 ha scritto:Chiedendo a Terminale

Codice: Seleziona tutto

whereis gcc
xcrun --find gcc
Ottengo:

Codice: Seleziona tutto

/usr/bin/gcc
/Applications/Xcode.app/Contents/Developer/usr/bin/gcc
Molto probabilmente fraintendo lo scopo dei comandi whereis e xcrun --find..
Inoltre in "/Library/Developer/CommandLineTools" per l'ennesima volta vedo gcc. Tutti questi sono doppioni?
Eh...

Terminale 7.0 di Sierra, da dove posto, mi indica gcc in /usr/bin, mi sembra come in El Capitan.
Ho provato a chiedere anche spiegazioni di xcrun, ma non le possiede, credo perché facciano parte di CLT.
Che ovviamente al momento non installo sulla prima beta...
Immagine
Quindi le ho cercate sulle Darwin Reference
https://developer.apple.com/legacy/libr ... run.1.html" onclick="window.open(this.href);return false;

Non direi, quindi, che sono doppioni.
Gli strumenti di sviluppo non risiedono nelle locazioni abituali delle applicazioni.
Quindi bisogna distinguere tra pacchetti ed eseguibili, strumenti di sistema e strumenti di sviluppo.

Considera che non essendo un programmatore ne so quasi nulla.
So appena che, se è vero, che gcc nei sistemi Mac è stato sostituito da molto con llvm

iMarko41
Stato: Non connesso
Apprendista Maccanico
Apprendista Maccanico
Iscritto il: mar, 10 set 2013 10:59
Messaggi: 71

Top

faxus ha scritto:So appena che, se è vero, che gcc nei sistemi Mac è stato sostituito da molto con llvm
La confusione che ho in testa è nata prorpio da questo.

Prima di installare Xcode, chiamavo abitualmente gcc da Terminale. gcc, non clang! Adesso invece noto che è stato sostituito da quest'ultimo, un front end per llvm.

Codice: Seleziona tutto

marcovianellos-MacBook-Pro:~ marcovianello$ gcc
clang: error: no input files
Ho fatto una confusione notevole tra gcc, clang, e il modo in cui os x gestisce i tool di sviluppo.. Esiste un compilatore di "default" per il sistema?
Sapresti farmi un po' di chiarezza su gcc e clang?
MacBook Pro 15" Mid 2012: Intel Core i7 2,60GHz, 8GB Ram 1600MHz, Intel HD4000 + NVidia GeForce GT650m 1GB, SSD 512GB.

Avatar utente
faxus
Stato: Non connesso
Pro-Expert 
Pro-Expert 
Avatar utente
Iscritto il: lun, 02 giu 2014 15:12
Messaggi: 30459
Località: Circondato dalle bufale

Top

Contatta:
Per fare chiarezza ne dovrei sapere...

Una manciata di link possono aiutarti?

"Clang è un compilatore per i linguaggi C, C++, Objective C ed Objective C++. Front-end di LLVM, è stato sviluppato dalla Apple al fine di rimpiazzare GNU Compiler Collection (GCC), in particolare per la bassa priorità che rivestiva l'Objective C agli occhi degli sviluppatori di GCC, oltre a problemi legati alla GNU General Public License.
Clang è disponibile sotto una licenza open source ed è software libero."

https://it.wikipedia.org/wiki/Clang" onclick="window.open(this.href);return false;

http://clang.llvm.org/get_started.html" onclick="window.open(this.href);return false;
http://llvm.org/docs/" onclick="window.open(this.href);return false;
https://developer.apple.com/library/pre ... rOverview/" onclick="window.open(this.href);return false;
https://developer.apple.com/library/pre ... lityIndex/" onclick="window.open(this.href);return false;

Video
https://developer.apple.com/videos/play/wwdc2016/405/" onclick="window.open(this.href);return false;
https://developer.apple.com/videos/play/wwdc2015/510/" onclick="window.open(this.href);return false;
https://developer.apple.com/videos/play/wwdc2015/410/" onclick="window.open(this.href);return false;
https://developer.apple.com/videos/play/wwdc2015/102/" onclick="window.open(this.href);return false;

Dovesse servire
http://training.apple.com/en/learn" onclick="window.open(this.href);return false;

iMarko41
Stato: Non connesso
Apprendista Maccanico
Apprendista Maccanico
Iscritto il: mar, 10 set 2013 10:59
Messaggi: 71

Top

Grazie per i link, alcuni li avevo già letti mentre altri mi erano sfuggiti..

Credo che gcc non sia effetivamente installato nel mio sistema ma sia presente la controparte clang, richiamabile dal comando "gcc" come dal comando "clang"..
O forse mi sto di nuovo confondendo bah! Proverò a cercare più affondo, qualcosa riuscirò a capire...

Grazie per il supporto comunque, nel frattempo tutte le spiegazioni sono ben accette!
MacBook Pro 15" Mid 2012: Intel Core i7 2,60GHz, 8GB Ram 1600MHz, Intel HD4000 + NVidia GeForce GT650m 1GB, SSD 512GB.

Avatar utente
faxus
Stato: Non connesso
Pro-Expert 
Pro-Expert 
Avatar utente
Iscritto il: lun, 02 giu 2014 15:12
Messaggi: 30459
Località: Circondato dalle bufale

Top

Contatta:
Clang, semplicemente, è l'interfaccia grafica di gcc.

All'incirca...

iMarko41
Stato: Non connesso
Apprendista Maccanico
Apprendista Maccanico
Iscritto il: mar, 10 set 2013 10:59
Messaggi: 71

Top

Non credo sia esattamente questo..

Come spiegato qui http://useyourloaf.com/blog/compiler-op ... c-or-llvm/:
"The LLVM project is an open source collection of tools [...] that build on a core set of libraries that provide an optimizer and code generator. Other tools in the LLVM project include the Clang frontend parser and the LLDB debugger."
Deduco che la gnu compiler collection sia stata sostituita in favore di llvm, e di clang all'insegna di front-end
Immagine

O almeno credo.. Questo non mi spiega l'esistenza de(i) file col nome gcc in /usr/bin, /Library/Developer/CommandLineTools/usr/bin..
MacBook Pro 15" Mid 2012: Intel Core i7 2,60GHz, 8GB Ram 1600MHz, Intel HD4000 + NVidia GeForce GT650m 1GB, SSD 512GB.

Avatar utente
faxus
Stato: Non connesso
Pro-Expert 
Pro-Expert 
Avatar utente
Iscritto il: lun, 02 giu 2014 15:12
Messaggi: 30459
Località: Circondato dalle bufale

Top

Contatta:
Beh, era detto anche nelle righe iniziali della voce in Wikipedia.

Tu come definiresti il front end di una raccolta di strumenti di programmazione?
Io l'ho chiamata "interfaccia grafica, all'incirca".

/usr/bin/ è il primo luogo di ricerca degli strumenti che utilizza Terminale.
Tutto qui, senza nessun'altra logica.
Per impostazione predefinita degli ingegneri Apple

iMarko41
Stato: Non connesso
Apprendista Maccanico
Apprendista Maccanico
Iscritto il: mar, 10 set 2013 10:59
Messaggi: 71

Top

Certo, ma con l'articolo sono riuscito a farmi un po' più di chairezza..
faxus ha scritto:Clang, semplicemente, è l'interfaccia grafica di gcc.
E' corretto, e da quello che ci ho capito nelle ultime relase di Xcode quest'ultimo è "l'interfaccia grafica" di llvm.

Non capisco però.. Se volessi utilizzare, al di fuori dell'ide di apple, dove sono libero di scegliere, il processo "classico" di compilazione (preprocessor -> compiler -> assembler -> linker) tralasciando llvm e facendo fare tutto a gcc, come dovrei fare?

EDIT:
Ciò che cerco di ottenere, "compilando" da linea di comando, è rappresentato nel primo riquadro..
Immagine
MacBook Pro 15" Mid 2012: Intel Core i7 2,60GHz, 8GB Ram 1600MHz, Intel HD4000 + NVidia GeForce GT650m 1GB, SSD 512GB.

Avatar utente
faxus
Stato: Non connesso
Pro-Expert 
Pro-Expert 
Avatar utente
Iscritto il: lun, 02 giu 2014 15:12
Messaggi: 30459
Località: Circondato dalle bufale

Top

Contatta:
Non ero in forma quando rispondevo, sono caduto in più di un lapsus...

Se non vuoi seguire le linee guida di Apple...
Cosa vorresti fare?
(anche restando nella ferma mia poca conoscenza dell'argomento)

Ma poi a che ti servirà?

iMarko41
Stato: Non connesso
Apprendista Maccanico
Apprendista Maccanico
Iscritto il: mar, 10 set 2013 10:59
Messaggi: 71

Top

Alcuni sorgenti richiedono di essere compilati con una specifica versione di gcc, ad esempio la libreria matematica atlas..
Ovviamente cosa che non riesco a portare a termine, visto che gcc è solo il nome del comando, e la compilazione è portata a termine da llvm.
Allegati
Schermata 2016-07-07 alle 12.04.55.png
Schermata 2016-07-07 alle 12.04.55.png (40.02 KiB) Visto 951 volte
MacBook Pro 15" Mid 2012: Intel Core i7 2,60GHz, 8GB Ram 1600MHz, Intel HD4000 + NVidia GeForce GT650m 1GB, SSD 512GB.

Avatar utente
faxus
Stato: Non connesso
Pro-Expert 
Pro-Expert 
Avatar utente
Iscritto il: lun, 02 giu 2014 15:12
Messaggi: 30459
Località: Circondato dalle bufale

Top

Contatta:
Non ti so dire.

È la stessa risposta che dà a me

Immagine

Vedi se ti può essere di chiarimento
https://www.google.it/#safe=off&q=compiling+on+os+x+gcc" onclick="window.open(this.href);return false;
Non ho la presunzione di leggerli e spiegarlo...

iMarko41
Stato: Non connesso
Apprendista Maccanico
Apprendista Maccanico
Iscritto il: mar, 10 set 2013 10:59
Messaggi: 71

Top

Momentaneamente risolvo indicando al posto di gcc, il comando seguito dal numero della versione, et voilà.. pare funzionare!

Codice: Seleziona tutto

gcc5
[b]gcc[/b]: fatal error: no input files
MacBook Pro 15" Mid 2012: Intel Core i7 2,60GHz, 8GB Ram 1600MHz, Intel HD4000 + NVidia GeForce GT650m 1GB, SSD 512GB.

Rispondi

Torna a “Software”

Chi c’è in linea

Visitano il forum: Nessuno e 30 ospiti