2011-09-25 17 views
5

Ho un progetto che è a volte sviluppato su Windows/Visual Studio 2010 e utilizza alcune funzionalità di C++ 11 e devo essere in grado di sviluppare/compilare su Mac OS X. Quando ho provato a costruire il progetto con Xcode ho avuto un sacco di errori riguardo alle nuove funzionalità di C++ 11 e ho controllato la versione di gcc per trovare che fosse piuttosto vecchia (4.2). Sembra che Apple stia cercando di costringere gli sviluppatori a pagare un upgrade non necessario a Lion rifiutando di consentire a Xcode 4+ di essere scaricato su qualsiasi altra versione di Mac OS, quindi mi rimane Xcode 3.x.C++ 11 con Xcode su Mac OS X Snow Leopard

Come posso continuare a utilizzare C++ 11 su Snow Leopard? C'è un modo per farlo e mantenere Xcode come IDE?

+0

possibile duplicato di [Posso usare le ultime funzionalità di C++ 11 in XCode 4 o OSX Lion?] (Http://stackoverflow.com/q/7482026/636019) – ildjarn

+0

ildjarn, assolutamente no. Questa domanda riguarda le versioni XCode <4 poiché agli utenti di Snow Leopard non è consentito l'uso di XCode 4. La domanda che hai collegato riguarda XCode 4/Lion. – nuit9

+1

Mentre Xcode 3 è l'impostazione predefinita per Snow Leopard, Apple ha realizzato una versione iniziale di Xcode 4 disponibile per SL attraverso il Mac App Store (e le versioni erano/sono disponibili tramite la connessione degli sviluppatori Apple). –

risposta

6

Aggiornamento feb.25 2012: Ora ci sono molte funzionalità disponibili per lavorare con l'ultimo clang. Forse è possibile targetizzare 10.6 se si utilizzano solo le funzionalità della lingua. Se hai bisogno di funzionalità di libreria, avrai bisogno di 10.7.


data l'attuale (sept.24.2011) lo stato del set di strumenti Xcode, è più facile (IMO) per scegliere un'altra ide o OS se avete bisogno di C++ 11 di sostegno.

il fork di usi gcc xcode non supporterà mai queste funzionalità. clang è piuttosto indietro rispetto a wrt C++ 11 features (perché la sua implementazione in C++ è ancora molto nuova e altri compilatori hanno avuto qualche anno in più). pertanto, i compilatori xcode con non supportano attualmente abbastanza funzionalità per lo sviluppo di C++ 11, indipendentemente dalla versione di osx che si usa.

è possibile installare una versione più recente di gcc e utilizzare un altro ide abbastanza facilmente.

tecnicamente, è anche possibile creare un plug-in per xcode 3 (non ufficialmente supportato) che richiama un altro compilatore (ad esempio una versione più recente di gcc). quella rotta è stata chiusa in xc4 (afaik). L'aggiornamento a quanto pare è ancora disponibile in Xc4; vedi il commento di idljarn qui sotto.

per molti progetti, è più semplice usare il Mac per l'avvio in linux o windows (o utilizzare la virtualizzazione).

l'opzione finale è il compilatore di intel, che può essere utilizzato in xcode e fornisce una quantità decente di supporto per C++ 11 - prova con xcode prima di acquistare per vedere se soddisfa le tue esigenze, funziona bene con xcode, e supporta le funzionalità di C++ 11 utilizzate dal tuo team.

infine, non credo che lo facciano per i vostri soldi di aggiornamento. in realtà non mantengono molto bene xcode per più versioni - si aspettano solo che tu stia con le ultime e le più grandi a meno che tu non abbia bisogno della retrocompatibilità; basta interrompere l'aggiornamento in quel caso. hanno investito e aiutato lo sviluppo di clang dopo la modifica della licenza di gcc. quindi sì ... osx è sempre stato molto indietro rispetto al supporto di C++ 11 perché hanno deciso di passare a un altro (molto giovane) compilatore. se aspetti che xcode supporti il ​​C++ 11, dovrai aspettare che clang lo supporti, il che può richiedere parecchio tempo.

+1

I plugin per xcode 3 funzionano anche con xcode 4 (sebbene non supportato). – ildjarn

+0

@ildjarn proprio quello di cui avevo bisogno ... un altro progetto prima della fine della serata (ma seriamente, grazie! =)) – justin

+0

confermato da @ildjarn. gcc4.5 (tramite 'port') funziona come un plugin con xc4. – justin

3

Ho appena visto questo ora e vorrei aggiornarvi su questo. LLVM attualmente in vendita con XCode è alla versione 3 (Source). Questa versione attuale è molto buona con il supporto di C++ 11.Ecco un link a ciò che è supportato:

http://clang.llvm.org/cxx_status.html

È possibile confrontare questo con il supporto GCC corrente qui:

http://gcc.gnu.org/projects/cxx0x.html

Come si può vedere, Clang al momento non è molto indietro, se lo è, con le funzionalità del nuovo standard supportato. L'unica cosa che vedo riguarda la mancanza di supporto per le funzionalità di concorrenza, ma questo è il caso della maggior parte dei compilatori C++ 11 a causa della natura del supporto. Quindi spero che questa risposta non sia troppo tardi e che tu sia non scoraggiato. Vai a prendere l'ultima versione di Xcode e sparagli (se non l'hai già fatto;))!

Problemi correlati