Quali sono alcuni buoni compilatori da utilizzare quando si impara il C++?[Chiuso]

StackOverflow https://stackoverflow.com/questions/77126

  •  09-06-2019
  •  | 
  •  

Domanda

Quali sono alcuni suggerimenti per compilatori C++ facili da usare per un principiante?Sarebbero preferiti quelli gratuiti o open source.

È stato utile?

Soluzione

GCC è una buona scelta per le cose semplici.

L'edizione Visual Studio Express è la versione gratuita del principale compilatore C++ di Windows.

Se utilizzi Windows, utilizzerei VS.Se sei su Linux dovresti usare GCC.

*Dico GCC per cose semplici perché per un progetto più complicato il processo di creazione non è così semplice

Altri suggerimenti

G++ è il compilatore GNU C++.La maggior parte delle distribuzioni *nix dovrebbero avere il pacchetto disponibile.

Consiglierei l'uso Sviluppo C++.È un IDE piccolo e leggero che utilizza le porte mingw come backend, il che significa che compilerai il compilatore C/C++ di fatto, gcc

Per un principiante:g++ --pedantic-errors -Wall

Aiuterà a imporre una buona programmazione fin dall'inizio.

gcc con -Wall (abilita tutti gli avvisi) -Werror (cambia gli avvisi in errori), -pedantic (ricevi avvisi per codice non standard) e -ansi (crea lo standard c++98).

Se sei a conoscenza di un avviso e devi disattivarlo, puoi sempre trasformarlo nuovamente in avvisi.

Raccomando gcc perché è progettato per essere utilizzato sulla riga di comando e puoi compilare programmi semplici e vedere esattamente cosa sta succedendo:

g++ -o myprogram myprogram.cc
ls -l myprogram

Un file in entrata, due file in uscita.Con Visual C++, la maggior parte delle persone lo usa con la GUI, dove devi impostare un progetto e l'IDE genera un mucchio di file che possono intralciarti se hai appena iniziato.

Se utilizzi Windows, sceglierai tra MingW o Cygwin.Cygwin è un po' complicato da configurare perché devi scegliere quali pacchetti installare, ma non ho esperienza con MingW.

Puoi sempre utilizzare il compilatore C++ dalla Gnu Compiler Collection (GCC).È disponibile per quasi tutti i sistemi Unix sulla terra, BSD, Mac OS, Linux e Windows (tramite Cygwin o mingw).

Numerosi IDE supportano il compilatore GCC C++, ad es.KDevelop sotto Linux/KDE o Dev-CPP come menzionato in altri post.

Microsoft Visual Studio Express Edition del loro compilatore C++ è buono

CodeBlocks è un ottimo IDE che può utilizzare oltre a molti altri compilatori CL.EXE (di Visual Studio) e gcc.Esiste anche una versione con gcc incluso.

Anche l'edizione Visual Studio Express è un'ottima scelta (con Platform SDK se svilupperai un'applicazione che chiama funzioni Winapi).

Eclipse è buono per Mac o per l'Xcode gratuito di Apple che può essere scaricato dal loro sito di sviluppo.

Un motivo per utilizzare g++ o MingW/Cygwin che non è stato ancora menzionato è che l'avvio e l'IDE nasconderanno parte di ciò che sta accadendo.Sarà incredibilmente utile in futuro comprendere le differenze tra compilazione e collegamento, ad esempio.Imparalo e capiscilo dall'inizio, e non saprai nemmeno che dovresti ringraziarti più tardi.

-Massimo

I say GCC for simple things because for a more complicated project the build process isn't so easy

È vero, ma non credo che comprendere il processo di costruzione di un grande progetto sia ortogonale alla comprensione del progetto stesso.Nel mio ultimo lavoro a cui ho lavorato, avevano un progetto enorme che doveva essere creato per la piattaforma di destinazione (LynxOS) e un ambiente di emulazione (WinXP).Hanno scelto di inserire tutto in un unico file .VCP per Windows e di crearlo come un unico grande eseguibile.L'obiettivo era di circa 50 processi individuali, quindi hanno scritto un makefile che elencava tutti i 3000 file sorgente, li hanno compilati tutti in un'unica grande libreria e quindi hanno collegato i singoli main.cpp per ciascun eseguibile con la libreria all-in-one, per creare 50 eseguibili (che condividevano forse il 10% del proprio codice con gli altri eseguibili).Di conseguenza, nessuno sviluppatore aveva la minima idea di quale codice dipendesse da un altro codice.Di conseguenza, non si sono mai presi la briga di cercare di definire interfacce pulite tra qualsiasi cosa, perché tutto era facilmente accessibile da ovunque.Un sistema di compilazione gerarchico avrebbe potuto contribuire a imporre una sorta di ordine in un repository di codice sorgente altrimenti disorganizzato.

Se non impari come i file .cpp producono codice oggetto, cos'è una libreria statica, cos'è una libreria condivisa, ecc., quando stai imparando il C/C++, dovrai comunque impararlo ad un certo punto per diventare un sviluppatore C/C++ competente.

Visual Studio nella riga di comando si comporta proprio come GCC.Basta aprire la finestra della riga di comando di Visual Studio e:

c:\temp> cl /nologo /EHsc /W4 foo.cpp
c:\temp> dir /b foo.*
foo.cpp  <-- your source file
foo.obj  <-- result of compiling the cpp file
foo.pdb  <-- debugging symbols (friendly names for debugging)
foo.exe  <-- result of linking the obj with libraries

Sono d'accordo con Iulian Șerbănoiu: Code::Blocks è un'ottima soluzione, utilizzabile sia da Linux (userà g++/gcc) che da Windows (userà sia il compilatore MS che gcc)

Tieni presente che dovresti provare almeno una o due volte a compilare utilizzando un buon vecchio makefile, anche solo per comprendere la logica dietro intestazioni, sorgenti, inclusione, ecc.eccetera..

Come principiante, non dimenticare di leggere libri sul C++ (mi vengono in mente i libri di Scott Meyers e Herb Sutter, quando cerchi di apprendere le stranezze del linguaggio) e di studiare progetti open source di alto profilo per imparare dal loro stile di codice. (hanno già riscontrato i problemi che incontrerai tu e probabilmente hanno trovato soluzioni praticabili...).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top