PDA

View Full Version : Compilatore C/C++ per Windows7


SnakeEater
07-04-2010, 10:23
Ciao a tutti,

vorrei sapere se esiste un compilatore C e C++ free per Windows 7.
Lavoravo con gedit su ubuntu, ma per alcune svariate motivazioni sono dovuto passare a W7 e non so che fare.

Grazie

tomminno
07-04-2010, 10:43
Visual Studio 2008 Express

SkyNut
07-04-2010, 11:04
CodeBlocks + Mingw

cdimauro
07-04-2010, 13:11
Visual Studio 2008 Express
Assolutamente d'accordo: per Windows, IMHO, non c'è di meglio (anche se un po' di tool di rifattorizzazione non mi dispiacerebbero).

tomminno
07-04-2010, 13:33
Assolutamente d'accordo: per Windows, IMHO, non c'è di meglio (anche se un po' di tool di rifattorizzazione non mi dispiacerebbero).

Refactor++, ma ovviamente non per la versione Express.
Invece di sviluppare il refactoring per il C++ hanno preferito fare accordi con un'azienda esterna per fornire un plugin gratuito. In 12 anni non hanno fatto nemmeno questo sforzo...

Mulder90
07-04-2010, 13:55
MinGW direi che è ottimo

WarDuck
07-04-2010, 14:15
MinGW direi che è ottimo

Mah insomma, è rimasto un po' al palo, e cmq il compilatore C++ di Microsoft è forse il migliore disponibile su piattaforma Windows.

fero86
07-04-2010, 16:24
MinGW direi che è ottimo anche no: non supporta il C++0x perché il porting non é al passo col gcc originale. non lo supporta neanche Visual Studio 2008 in realtá, infatti io consiglierei Visual Studio 2010.
inoltre il MinGW non ha la pretesa di supportare Win32 & COM in maniera esaustiva.

||ElChE||88
07-04-2010, 16:38
anche no: non supporta il C++0x perché il porting non é al passo col gcc originale. non lo supporta neanche Visual Studio 2008 in realtá, infatti io consiglierei Visual Studio 2010.
Sul SourceForge di MinGW vedo una versione 4.5... dovrebbe supportare il c++0x, no?
Immagino non sia la versione finale, ma neanche Visual Studio 2010 lo è.

Comunque mi associo a quelli che consigliano Visual Studio.

tomminno
07-04-2010, 16:42
anche no: non supporta il C++0x perché il porting non é al passo col gcc originale. non lo supporta neanche Visual Studio 2008 in realtá, infatti io consiglierei Visual Studio 2010.


Se non fosse che VS2010 è ancora in beta e C++0X non è ancora uno standard che tra l'altro pare proprio diventerà C++11 per lo meno a leggere Sutter. Quindi C++0x diventerà standard dopo l'uscita di VS2010, forse sarà supportato con un SP (come è stato per il tr1) oppure passeremo direttamente al 2012 o quello che sarà.

cdimauro
07-04-2010, 20:28
Refactor++, ma ovviamente non per la versione Express.
Invece di sviluppare il refactoring per il C++ hanno preferito fare accordi con un'azienda esterna per fornire un plugin gratuito. In 12 anni non hanno fatto nemmeno questo sforzo...
Infatti. Non capisco perché, visto che gli altri IDE sono molto agguerriti da questo punto di vista. Sarebbe la classica ciliegina sulla torta.

jeck999
24-05-2010, 20:33
scusate una domanda stupida x voi ma x me è importante

sono alle prime armi sto cercando di imparare il c++

sto cercando un compilatore che mi faccia esercitare su degli esercizi, diciamo basilari
ho usato il devc++ adesso ho installato Visual Express 2008 ma dove sta quello che in devc++ è il file sorgente vuoto che poi mandi in esecuzione il programmino?

DanieleC88
24-05-2010, 20:49
scusate una domanda stupida x voi ma x me è importante

sono alle prime armi sto cercando di imparare il c++

sto cercando un compilatore che mi faccia esercitare su degli esercizi, diciamo basilari
ho usato il devc++ adesso ho installato Visual Express 2008 ma dove sta quello che in devc++ è il file sorgente vuoto che poi mandi in esecuzione il programmino?

:wtf:

_Claudio
25-05-2010, 00:24
Io uso Visual C++ express 2010 ed è perfetto, se lavori su CLR e Windows Forms.

Se devi lavorare su win32 spero ti appoggi a librerie di wrapping tipo wxWidgets per cui non c'è nulla di meglio che Code::Blocks + MinGW.

Tutto dipende da quello che devi fare.

Se devi compilare programmini stupidi che lavorano su console con cin/cout o scanf/printf allora vai di Visual C++ che ti eviti tanti sbattimenti.

jeck999
25-05-2010, 07:08
sto imparando ho il manuale, sono ai principi
xkè quando scrivo un esercizio poi non parte da errore?
come funziona? c'è una prassi da seguire? prima di scrivere la sintassi?
lancio sto software poi?

aiutatemi

cdimauro
25-05-2010, 07:26
Se stai imparando a programmare col C/C++ hai sbagliato completamente linguaggio. :stordita:

Liùk92
31-05-2010, 12:08
Io ti consiglio Microsoft Visual Studio 2008 o 2010. Lo uso e mi trovo bene..
Installi il programma, lo apri e crei un progetto in modalità Console CLR, dai l'ok e compili il tuo programma. Se non parte è perchè c'è qualche errore..gli errori li dice il programma..;-)

jeck999
31-05-2010, 12:22
grazie

a lavoro che sta installato il Visual Studio 6.0 partono regolarmente
con il 2008 express a casa non mi partono, mi escono devi vari errori di compilazione
non ho capito ogni versione cambia la sintassi, librerie o altro?

rbon
31-05-2010, 13:24
Ciao,
qualche giorno fa ho tentato di compilare dei sorgenti che ho trovato in rete.
Ho provato con Visual Studio 2010 Express.
Non funziona.
I motivi sono sostanzialmente 2 (due):
1. nelle versioni freeware non ci sono le librerie MFC (Microsoft Foundation Class)
2. manca la SDK (Software Development Kit)
La versione commerciale VS 2010 Professional è una trial di 30 gg (estensibile, previa registrazione, di altri 60 gg) che contiene MFC ed una versione ridotta della SDK (per sviluppare programmi) che funziona per Windows fino a Vista.
Per sviluppare con Windows 7 è necessaria l'SDK specifica (è stata rilasciata il 24-05-2010).
Per quanto mi risulta le versioni Express non sono adatte per compilare programmi.

jeck999
31-05-2010, 13:27
io ho W7 se installo la 2010 Professional
come risolvo x l'SDK?

rbon
31-05-2010, 18:13
io ho W7 se installo la 2010 Professional
come risolvo x l'SDK?
Fai riferimento a "Microsoft Windows SDK Blog" http://blogs.msdn.com/b/windowssdk/archive/2010/05/25/released-windows-sdk-for-windows-7-and-net-framework-4.aspx
dove puoi trovare la RTM (Ready To Marked) di Windows SDK for Windows 7 and .NET Framework 4
1. scarica la ISO http://www.microsoft.com/downloads/details.aspx?FamilyID=35aeda01-421d-4ba5-b44b-543dc8c33a20&displaylang=en
avente nome "GRMSDK_EN_DVD.iso" http://download.microsoft.com/download/F/1/0/F10113F5-B750-4969-A255-274341AC6BCE/GRMSDK_EN_DVD.iso
2. una volta ottenuta la ISO (567.3 MB) la puoi masterizzare con ImgBurn (che supporta anche i DVD blu-ray).
3. una volta ottenuto il DVD lo apri con esplora risorse (l'autorun dovrebbe essere disabilitato su Win 7) ed all'interno lanci "autorun.exe".
.....
by the way
VS 2010 (qualunque edizione) installa .NET Framework 4
ciao

cionci
31-05-2010, 18:38
anche no: non supporta il C++0x perché il porting non é al passo col gcc originale. non lo supporta neanche Visual Studio 2008 in realtá, infatti io consiglierei Visual Studio 2010.
inoltre il MinGW non ha la pretesa di supportare Win32 & COM in maniera esaustiva.
Ma VS2010 supporta C99 ?
Mi ricordo che una volta dicesti che il supporto allo standard C99 non era importante...ed ora diventa importante il supporto ad uno standard che non è ancora uscite ? :) Comunque il GCC di MinGW è stato di recente aggiornato alla versione 4.5.

Come al solito la risposta è: dipende da quello che si vuole fare. Per programmare con C e C++ standard o con librerie portabili secondo me è migliore MinGW.
Se invece si vuole programmare con le API Win32 il migliore è quello VC++ Express.

Secondo me il compilatore migliore fra tutti quelli disponibili per Windows resta comunque il compilatore Intel ;)

Liùk92
31-05-2010, 20:20
Io penso che, come ha detto l'utente sopra, se installi la versione freeware non disponi del programma completo quindi potresti avere delle difficoltà nella compilazione ecc. Tu installa Visual Studio completo è vedi che non avrai problemi ;-)

cionci
31-05-2010, 20:23
Io penso che, come ha detto l'utente sopra, se installi la versione freeware non disponi del programma completo quindi potresti avere delle difficoltà nella compilazione ecc. Tu installa Visual Studio completo è vedi che non avrai problemi ;-)
Visual Studio completo si compra...
In ogni caso la versione Express va bene per moltissime situazioni. Certo non ha MFC, ma non è una grande perdita...

fero86
01-06-2010, 00:43
Ma VS2010 supporta C99 ? boh? :p
un giorno se mi va e se me ne ricordo controllo, casomai faccio sapere su questo topic.



Mi ricordo che una volta dicesti che il supporto allo standard C99 non era importante...ed ora diventa importante il supporto ad uno standard che non è ancora uscite ? :) il fatto é che per me (ma magari per altri sviluppatori é diverso) lo standard del C++0x é millemila volte piu importante del C99 visto che il C99 introduce per lo piu features che stanno giá nel C++ mentre invece il C++0x introduce una cosa che per me é importantissima perché mi risparmia grossi overhead sintattici e riduce il tempo che spendo nel design del codice: le lambda expressions, che prima potevo solo vagamente rendere tramite funtori ingombranti e poco leggibili.



[cut] Se invece si vuole programmare con le API Win32 il migliore è quello VC++ Express. naturalmente farai riferimento alla Express solo perché é gratuita, perché per il resto le edizioni a pagamento sono infinitamente meglio. io in questo periodo lavoro su un progetto universitario in C++ per il quale uso COM: non sto usando i wizard perché non mi piace di ritrovarmi una supercazzola di codice autogenerato che non ho idea di cosa faccia nei dettagli, ma dopo aver provato a programmare COM con ATL (anche senza wizard) davvero non capisco come se ne possa fare a meno: giorni e giorni di lavoro risparmiato.

fero86
01-06-2010, 00:45
Visual Studio completo si compra...
In ogni caso la versione Express va bene per moltissime situazioni. Certo non ha MFC, ma non è una grande perdita... non ha neanche ATL, l'editor di risorse, il supporto per le architetture a 64 bit e neanche gli strumenti per generare i setup basati su Windows Installer; queste per me sarebbe perdite enormi... si potrebbe rimediare solo alla questione di Windows Installer usando i tools forniti nell'SDK, ma non é affatto la stessa cosa: in Visual Studio Professional con pochi click hai fatto un installer perfettamente conformante.

cionci
01-06-2010, 04:46
Certo mi riferivo a quelli gratuiti.
non ha neanche ATL, l'editor di risorse, il supporto per le architetture a 64 bit e neanche gli strumenti per generare i setup basati su Windows Installer; queste per me sarebbe perdite enormi... si potrebbe rimediare solo alla questione di Windows Installer usando i tools forniti nell'SDK, ma non é affatto la stessa cosa: in Visual Studio Professional con pochi click hai fatto un installer perfettamente conformante.
E' chiaro che si sta parlando di situazioni in cui si fa uso del linguaggio standard o poco più... Per un uso professionale Visual Studio si compra ;)

cionci
01-06-2010, 05:23
Dato che ho dovuto alzarmi presto, sto dando uno sguardo a come sono state implementate le lambda expression... La sintassi non mi piace, ma il risultato è di sicuro effetto :D
Sto sbavando sulla keyword auto :O

std::map< std::string, std::map<int, std::string> > myMap;

for(auto it = myMap.begin(); it != myMap.end(); it++) { ... }

:eek:

fero86
01-06-2010, 12:27
é come var di C#.

tra l'altro la keyword auto nello standard precedente c'era giá, solo che aveva un significato diverso e totalmente inutile, infatti non la usava nessuno :|

comunque auto non é l'unico strumento offerto da C++ che fornisce inferenza di tipi: ne forniscono anche i templates. la funzione for_each é un esempio di come il tipo dell'iteratore viene inferito: di fatto nessuno lo scrive mai, ne' chi programma la funzione for_each ne' chi la invoca.

DanieleC88
01-06-2010, 12:31
é come var di C#.
E già che c'erano potevano usare "var" anche nel C++0x, no? :(

fero86
01-06-2010, 12:35
E già che c'erano potevano usare "var" anche nel C++0x, no? :( vabbé, tanto io "auto" non l'ho mai usata visto che era inutile e quindi il mio codice non viene rotto :asd:

Kralizek
01-06-2010, 12:41
E già che c'erano potevano usare "var" anche nel C++0x, no? :(

perché? é cosí bello usare la stessa keyword 8 volte con significato diverso a seconda del contesto! :asd:

fero86
01-06-2010, 14:19
perché? é cosí bello usare la stessa keyword 8 volte con significato diverso a seconda del contesto! :asd: no, non hai capito: il contesto é rimasto esattamente lo stesso, semplicemente é cambiato il significato :stordita:
in pratica un vero e proprio breaking change nel linguaggio :D
codice preesistente che usava quella keyword ora semplicemente non compilerá piu. per fortuna che la keyword era assolutamente inutile e quindi non la usava nessuno.

banryu79
01-06-2010, 14:51
per fortuna che la keyword era assolutamente inutile e quindi non la usava nessuno.
Ma era tipo la keyword per dichiarare le variabili locali alle funzioni?
Che poi appunto omettendola le variabili così dicharate erano comunque locali.

Avran voluto trovargli uno scopo più, come dire... utile :D

cionci
01-06-2010, 14:53
Locali al blocco...ma cambia poco.