2009-08-05 18 views
13

Ho recentemente iniziato a imparare C++ e sono completamente confuso con le scelte di IDE e compilatori disponibili. Sono competente per le lingue interpretate e mi piace la semplicità di utilizzare qualsiasi IDE o editor di testo e quindi eseguire l'interprete dalla riga di comando. Tutto funziona come mi aspetto, indipendentemente dall'IDE utilizzato, perché utilizzo sempre lo stesso interprete.Apprendimento C++ senza IDE

Ora che ho iniziato ad imparare C++ sono sopraffatto dalla scelta di diversi compilatori e, soprattutto, dalle loro differenze. Sembra che le cose siano più semplici per me (non necessariamente più facili) se, mentre sto imparando, uso un editor di testo e un compilatore che eseguo dalla riga di comando. Ho una conoscenza di base di come funziona la compilazione e il collegamento e capisco il ruolo dei file di intestazione.

In primo luogo, ci sono libri o siti Web che insegnano il C++ da questo approccio? (IDE-less) Molti libri cercano di evidenziare le differenze tra IDE e compilatori selezionandone due e confrontandoli, il che mi confonde.

In secondo luogo, come devo impostare il mio flusso di lavoro? (Ignora la scelta dell'editor di testo, sto parlando di compilatori, linker, ecc.) Sto facendo fatica a capire quali differenze hanno i diversi compilatori e quindi tienilo a mente quando rispondi. Sembra che i compilatori più popolari siano g ++ e CL. domanda simile, ma io sono più interessato al perché alcuni programmi funzioneranno con alcuni compilatori e non altre: C++ Compiler for Windows without IDE?

Per ulteriori informazioni: sto sviluppando su Windows e da quanto ho capito, sembra che ci sia 'puro' C++ e poi C++ che è in qualche modo collegato a Windows, è questo Visual C++? Mi piacerebbe scrivere programmi che facciano uso di funzionalità di Windows, ma voglio sapere quando sto usando le funzionalità di Windows e quando sto scrivendo il codice che funzionerebbe su qualsiasi piattaforma.

Aggiornamento: Quindi sembra che non dovrei preoccuparmi dei compilatori quando sono appena agli inizi. Il motivo per cui voglio capire le differenze è perché non voglio scrivere codice per un compilatore specifico e entrare in cattive abitudini. È un non-problema?

+2

Inizia con un libro che insegna C++ standard, quindi non dovrai preoccuparti di entrare in cattive abitudini con codici non standard senza accorgertene. Vedi http://stackoverflow.com/questions/388242/ – KTC

risposta

11

In primo luogo, ci sono libri o siti Web che insegnano il C++ da questo approccio? (IDE-less)

Sì, sicuramente. Stroustrup's book è già stato menzionato. Per l'apprendimento del C++, consiglierei anche altri due libri: se ti piacciono le spiegazioni approfondite e non esci da 1000 pagine, guarda su Lippman et al. Se preferisci una breve introduzione e non temere una curva di apprendimento ripida, consulta Koenig/Moo. Entrambi sono libri eccellenti. (A proposito, un buon posto per cercare buoni libri è sempre stata la sezione di revisione del libro al ACCU.)

Per quale catena di strumenti si desidera utilizzare: Se si preferisce avere un editor autonomo e richiamare il compilatore dal riga di comando, puoi farlo con GCC o VC. Questo approccio ha il vantaggio che è più improbabile che ti induca ad usare qualcosa di proprietario (come C++/CLI). Se desideri provare un IDE, VC Express va bene, una volta che hai passato un nuovo progetto C++. Naturalmente, il numero di opzioni che è possibile modificare per un nuovo progetto può essere molto travolgente. Ma d'altra parte ottieni cose come un debugger integrato. Si noti che ci sono anche altre soluzioni integrate. Il più maturo e prominente è probabilmente l'eclissi.

Modifica: Se non ti dispiace spendere un po 'di soldi, guarda Comeau. Non è gratuito, ma non è nemmeno costoso e di solito è considerato il compilatore C++ più conforme agli standard e ha ottimi messaggi di errore. (Puoi testarlo a the website.) Nota che emette codice C, però.Ciò significa che devi avere un altro compilatore per creare un programma eseguibile. Ma GCC e VC Express lo faranno, quindi non ci sono altri costi. (Si noti che usando VC si otterrà implementazione lib std di Dinkumware, che è anche considerato un ottimo uno.)

4

Utilizzare MinGW - è una toolchain di sviluppo C++ della riga di comando che consente di creare applicazioni Windows. Il link SO che hai citato sembra avere tutti i dettagli rilevanti, quindi non capisco perché hai postato questa domanda.

+0

Stai facendo la domanda sbagliata, e quella a cui davvero non si può rispondere. Sono entrambe implementazioni dello stesso standard linguistico. In alcune aree si sarà un po 'più bravi nell'implementare gli standard di sicurezza rispetto agli altri. Ma non dovresti preoccuparti di cose del genere in questa fase. –

+0

Ok, grazie. Trovo difficile non preoccuparmi di queste cose, tuttavia, perché trovo che un codice verrà compilato con un compilatore e non un altro che mi confonde quando sto cercando di minimizzare anche le basi. –

+0

Per quanto riguarda le basi, entrambi i compilatori supportano le stesse funzionalità linguistiche. –

3

In primo luogo, ci sono libri o siti Web che insegnano il C++ da questo approccio? (IDE-less)

Inizia dalla lettura The C++ Programming Language libro. Scritto da Bjarne Stroustrup, il creatore di C++, questo è il libro più affidabile e ampiamente letto al mondo su C++.

Dai uno sguardo anche a Programming — Principles and Practice Using C++. È un'introduzione alla programmazione per le persone che non ha mai programmato prima. Sarà anche utile per le persone che hanno programmato un po 'e vogliono migliorare il loro stile e tecnica - o semplicemente imparare il C++ moderno.

+0

Ma sfortunatamente non è il migliore per imparare il C++. –

+0

Potrebbe non essere per principianti nella programmazione, ma il meglio per i principianti in C++. –

+0

@Neil: puoi approfondire le tue opinioni sul libro introduttivo alla programmazione di Stroustrup? Non l'ho ancora visto, ma avendo insegnato il C++ per anni, sono molto interessato a questo. – sbi

1

sto sviluppando su Windows e da quello che ho capito, sembra che ci è 'pura' C++ e quindi C++ che è qualche modo legati a Windows, è questo Visual C++?Vorrei scrivere i programmi che utilizzano le funzionalità di Windows ma voglio sapere quando sono utilizzando le funzionalità di Windows e quando sono codice di scrittura che funzionerebbe su qualsiasi piattaforma .

MS Visual C++ 2008 Express è un IDE gratuito rivolto a persone come te, è disponibile per il download da Microsoft, ti consiglio di provarlo.

+1

Ok, ne ho già una copia installata ma temo che inizierò a scrivere programmi che utilizzano le funzionalità di C++ visive senza rendermi conto che lo sto facendo, e quindi il programma non verrà compilato con altro che con CL. –

+1

@Pheter: Questo è sempre un problema, non solo con VC, anche se sono d'accordo che potrebbe essere peggio con VC che con, diciamo, GCC. L'unico modo per evitarlo è usare più di un compilatore. Non c'è nulla di male nel chiedere parecchie opinioni. – sbi

+0

In questo caso userò probabilmente MinGW e avrò una copia di CL pronta per la compilazione una seconda volta per assicurare che le cose vengano compilate correttamente in entrambi. Grazie! –

0

In Windows ti consigliamo Visual Studio Express: è gratuito ed è ampiamente accettato dai programmatori C++ sulla piattaforma Windows.

Dal momento che stai iniziando a imparare la lingua, non preoccuparti delle differenze, dei vantaggi/svantaggi dei compilatori e degli IDE: lascialo quando sarai più esperto della lingua e sarai coinvolto nella scrittura di un vero programma.

0

In realtà suggerisco l'approccio IDE, Microsoft Visual C++ Express Edition dovrebbe fare il trucco. Escludendo alcune sintassi fantasiose, la maggior parte dei compilatori C++ si comporta allo stesso modo. C++ è un linguaggio che ha una libreria standard molto piccola (che copre per lo più funzioni di I/O, matematica di base ecc.) Questo è probabilmente quello che tu definisci come puro C++. Per qualcosa di più avanzato dovrai usare le librerie di sistema. Ad esempio se vuoi scrivere l'applicazione Windows gui devi includere il file di intestazione windows.h che è specifico per la piattaforma ed esiste solo sui compilatori di Windows ..

+0

In realtà, si tratta di un linguaggio con una libreria standard piuttosto ampia, che copre molto più di I/O - hai sentito parlare dell'STL? –

+0

È nella parte etc :) A mio parere è ancora una piccola libreria standard. La maggior parte dei linguaggi moderni viene fornita con le librerie di contenitori e quando si confronta la libreria standard C++ con quella di .NET Framework, Java o Python è davvero essenziale. Database, windowing, networking e threading mancano tutti dalla libreria standard C++. – Ivan

1

Visual C++ è il nome del pacchetto del programma IDE. L'installazione installa molte cose tra cui il compilatore cl.exe, che può essere compilato, a seconda delle impostazioni, programma scritto nel linguaggio di programmazione C, C++ o C++/CLI (per il framework .Net).

È possibile utilizzare il compilatore sul prompt dei comandi senza IDE (ad esempio) selezionando Start> Programmi> Microsoft Visual Studio X> Strumenti di Visual Studio> Prompt dei comandi di Visual Studio X. Questo esegue uno script che imposta varie impostazioni dell'ambiente necessarie per compilare i programmi prima di fornire il prompt dei comandi.

0

Se non si utilizza un IDE, è sicuramente desidera utilizzare Makefile per organizzare il flusso di lavoro .. e puoi fare facilmente da emacs o vim.

In ogni caso, mi permetto di suggerire di utilizzare un molto semplice, IDE quasi non intrusivo, che potrebbe essere grande per scopi di apprendimento: http://www.bloodshed.net/devcpp.html

Viene fornito con il compilatore MinGW in bundle, quindi è sufficiente installare e andare.

+1

Dev-C++ è abandonware, andiamo avanti .... (cioè almeno usare wxDev-C++ se ti piace quella particolare interfaccia IDE.) – KTC

+0

È Non riguardo l'interfaccia più bella o le funzionalità più recenti, ho appena indicato uno strumento in cui scrivi, premi un pulsante e compila il programma, premi un altro pulsante e viene eseguito. E per quello, devcpp è appena sufficiente, niente di più, niente di meno ... ricorda che l'OP non voleva fare scherzi con gli IDE – fortran

+0

DevC++ non è più in fase di sviluppo ed è pieno di errori. Se vuole un IDE non MS, dovrebbe usare Code :: Blocks. –

0

Direi di iniziare con Visual Studio. Questo è un grande IDE per programmare C++ su Windows, potrebbe anche usarlo quando può accelerare un sacco di cose.

Le differenze tra i compilatori non sono enormi - se è possibile scrivere codice solido in VS, non dovrebbe essere un problema capire come far funzionare il codice in GCC/G ++.

Per quanto riguarda i libri; Eccezionali C++ di Herb Sutter e The C++ Programming Language di Bjarne Stroustrup sono un'ottima lettura.

Visual Studio è la soluzione ideale per lo sviluppo di Windows.