2010-05-10 28 views
12

Sto cercando di capire quale compilatore C/C++ usare. Ho trovato questo elenco di C/C++ compilatori su Wikipedia:Come determinare quale compilatore C/C++ usare?

http://en.wikipedia.org/wiki/List_of_compilers#C.2FC.2B.2B_compilers

Sono abbastanza certo che voglio andare con un compilatore open source. Sento che se è open source, allora sarà un compilatore più completo dal momento che molte prospettive del programmatore vengono utilizzate per renderlo migliore. Per favore dimmi se non sei d'accordo.

Devo dire che ho intenzione di imparare il C/C++ principalmente per programmare applicazioni/giochi 3D in 2D che sarà compatibile con i sistemi operativi iPhone Windows, Linux, Mac e. Attualmente sto usando il sistema operativo Windows Vista x64.

+0

iPhone -> gcc e LLVM sono le uniche scelte. – kennytm

+0

se si prevede di pubblicare app per iPhone nell'appstore di Apple XCode e Objective-C sono le uniche alternative supportate. – jnoss

+0

Non sapevo che avresti potuto sviluppare legalmente applicazioni iPhone su telefoni non jailbroken in C++. Avevo l'impressione che fosse necessario l'obiettivo C. – Uri

risposta

15

Prima di tutto, secondo me come un principiante il vostro ambiente di sviluppo (IDE) conta molto più del compilatore.

penso che la gente posto troppa enfasi sulla scelta del compilatore nella fase iniziale. Sebbene non sia Java, C++ è pensato per essere portabile.

Se il programma che si sta scrivendo funziona solo con compilatori specifici, probabilmente stai facendo la cosa sbagliata o può lavorare un po 'sul rendendolo più portabile.

Se arrivi a un punto in cui la scelta del compilatore ha un impatto significativo sulle prestazioni per te, hai già perfezionato tutto il resto del programma e sei in buono stato e anche le tue capacità sono abbastanza avanzate. Abbiamo insegnato le differenze tra i compilatori in fasi abbastanza avanzate nel curriculum CS.

Se si utilizza una macchina basata su UNIX (Linux, Mac, Linux reale), quindi praticamente GNU (g ++) è la strada da percorrere ed è abbastanza più o meno standard. Se è abbastanza buono da compilare il tuo sistema operativo, probabilmente è abbastanza buono per te. Su un Mac puoi usare XCode come IDE e si interfaccia bene con g ++. Su Linux, alcune persone preferiscono gli strumenti a riga di comando, anche se potrebbe piacerti il ​​supporto Eclipse C++, oggi è molto meglio di quanto non fosse 3-4 anni fa.

Le cose su Windows sono più complicate. Se puoi permetterti, avere accesso a, o essere idoneo per una delle edizioni gratuite (ad esempio, tramite una scuola), penso che gli ambienti Microsoft Visual C++ (o qualsiasi altra cosa siano chiamati ora) siano abbastanza buoni per l'apprendimento e che siano usato in produzione. Penso che in realtà ci sia uno studio visivo leggero con un'enfasi sul C++ che potrebbe essere un buon inizio. Se non lo fai, puoi probabilmente trovare una distribuzione di Eclipse specifica per C++ e include un'implementazione dei compilatori GNU.

+0

Sto usando Windows Vista x64. Ho cercato il miglior IDE per C/C++ e molte persone dicono Microsoft Visual Studio ma, voglio svilupparlo per tutti i sistemi operativi, non solo per Windows OS (XP/Vista/7). Ho letto che è importante considerare la portabilità quando si sceglie un IDE. –

+0

Se stai sviluppando un gioco, probabilmente utilizzerai un'API di grafica 2D/3D che è proprietaria di una piattaforma, come DirectX e OpenGL rispetto a qualsiasi altra cosa venga utilizzata su iPhone. Se stai solo imparando C++ e usando le librerie standard, il tuo codice sarà facilmente portatile indipendentemente dal sistema operativo o dal compilatore che usi. – Uri

+6

@Adam: No, la portabilità è quasi completamente ortogonale alla scelta IDE IMO. Scegli il tuo IDE preferito, usalo per scrivere codice portatile (per esempio evita le estensioni del compilatore che vengono con il compilatore IDE), poi quando hai finito prendi quel codice e compilarlo sulle altre piattaforme di destinazione, possibilmente usando un compilatore diverso. Per esempio, scrivo la maggior parte dei miei programmi usando Visual Studio, quindi uso gcc per compilare il progetto su OS X/Linux. Il rovescio della medaglia è che quando porto devo scrivere un makefile separato (MSVC non li usa), il che è un dolore ma ne vale la pena. – user168715

14

Usa gcc e g ++, mentre si sta ancora imparando nelle lingue, una abbastanza grande compito per ora. Se hai bisogno di un compilatore specializzato in futuro, ti consigliamo di avere una comprensione molto più approfondita della lingua e del dominio del tuo problema per valutare correttamente i candidati.

+4

+ 1 ... GCC conduce in conformità e portabilità. – Potatoswatter

+4

@Potatoswatter: rispetto a cosa? – jalf

+1

Usare gcc e g ++ da soli è una seccatura che non dovresti avere a che fare con l'apprendimento. I vantaggi di un IDE corretto, con debug incorporato, gestione delle build e così semplicemente non possono essere ignorati mentre si sta ancora imparando la lingua. Semplicemente usare g ++ non rende magicamente il tuo codice portatile, dopotutto; devi ancora scegliere le librerie multipiattaforma. –

5

Ottieni Visual Studio Express (IMO più facile e veloce, da configurare) e impara con esso; quando pensi di sapere abbastanza su C++ e su come funzionano le "cose", potresti iniziare a usare qualcosa come QT o GCC (con cygwin) e imparare a effettuare il porting su piattaforme diverse.

+4

Il toolkit è chiamato Qt (Q superiore, T inferiore); QT è QuickTime (Q e T superiore). – CMircea

+0

Capisco. Forse hai ragione. Dopotutto, sono solo un principiante. Qualcosa da considerare sicuramente. Grazie. –

5

Ritengo che se è open source, sarà un compilatore più completo dal momento che molte prospettive del programmatore vengono utilizzate per migliorarlo.

Questo non è necessariamente vero. Si potrebbe anche dire che se si utilizza il compilatore di Microsoft, sarà ottimale per Windows, dal momento che Microsoft sa come ottimizzare un compilatore per Windows.

Microsoft ha Visual C++ Express Edition che è gratuito e naturalmente include un bel IDE che è molto adatto per lo sviluppo di Windows.

Ma se sei interessato a creare software portatile, guarda GCC, che è il compilatore predefinito su Linux e che è disponibile anche su Mac. (L'iPhone funziona in modo totalmente diverso e richiede strumenti speciali che funzionano solo su Mac OS X). È possibile ottenere GCC per Windows con Cygwin o MinGW.

+0

Bene, ho in programma di prendere tutto il codice C/C++ che scrivo sulla mia macchina Windows Vista in un secondo momento sull'ambiente MAC. Non credo che Visual C++ Express sarà una scelta intelligente da cui iniziare. Potrei anche saltare direttamente a GCC e Cygwin. Quale IDE sarebbe adatto per GCC per Windows e Cygwin? –

+0

C'è per esempio Code :: Blocks http://www.codeblocks.org/ che è gratuito e disponibile per Windows, Linux e Mac OS X. Si potrebbe anche usare Eclipse o NetBeans per gli sviluppi C++, anche se questi sono in primo luogo gli IDE Java . Devi installare GCC sul tuo sistema e poi quegli IDE lo useranno per compilare il tuo codice. – Jesper

+0

Cygwin è bello, ma potrebbe essere un problema se si sviluppano applicazioni commerciali. –

0

Per le finestre u possibile utilizzare CodeBlocks Credo che utilizza gcc e la sua abbastanza user friendly

+0

Su Windows, in realtà, Code :: Blocks viene fornito con MinGW :) –

0

vi consiglio caldamente di andare con MinGW.

Si tratta di:

  • Open-source
  • Disponibile su tutte le principali piattaforme
  • viene fornito con le intestazioni e le librerie Win32 standard di
+0

Disponibile su tutte le principali piattaforme? Significa che è disponibile per linux: p – hhafez

+0

MinGW è una particolare build di gcc per Windows. –

+0

@hhafez: è disponibile per Linux. In effetti, molte persone lo usano per costruire applicazioni Windows su Linux. Quindi li testano in VINO. –

0

La chiave per scrivere portatile codice C++ è:

  • Utilizzare una piattaforma multipla ve Sistema di controllo rsion (Subversion è una grande scelta), perché questo rende più facile
  • compilare e testare il codice su altre piattaforme presto e spesso