PDA

View Full Version : [C++] Compilatore 64 bit windows


Marcopev
09-12-2010, 14:24
Salve a tutti, ho un problema. Per la mia tesi di laurea sto utilizando un eseguibile scritto in c++ dal mio dipartimento (ho però i file .h e .cpp sorgenti). Il problema è che lo devo far girare molto a lungo su una macchina nuova che ho a casa, con processore i7, 8 GB di ram e windows 7 64 bit. Il precedenti test erano stati eseguiti su un core duo, 2 GB di Ram ma su Linux. L'assurdo è che quei test erano molto più veloci rispetto a quelli lanciati da me.
Credo quindi di dover ricompilare il codice c++ con un compilatore diverso, in particolare un compilatore per win64. Io sto a zero con il c++ (programmo in Java), e vorrei trovare un modo facile per farlo, dato che devc++ non supporta la versione a 64 bit (o meglio compilare compila pure, ma con mingw per 32 bit...tantè che non cambia una accidenti nel tempo di esecuzione o quasi). Sicuramente tra di voi ci sono npersone molto più esperte di me, e cerco un aiuto (facile).
PS non posso modificare nulla all'interno del codice c, solo ricompilarlo....

dojolab
09-12-2010, 14:44
Salve a tutti, ho un problema. Per la mia tesi di laurea sto utilizando un eseguibile scritto in c++ dal mio dipartimento (ho però i file .h e .cpp sorgenti). Il problema è che lo devo far girare molto a lungo su una macchina nuova che ho a casa, con processore i7, 8 GB di ram e windows 7 64 bit. Il precedenti test erano stati eseguiti su un core duo, 2 GB di Ram ma su Linux. L'assurdo è che quei test erano molto più veloci rispetto a quelli lanciati da me.
Credo quindi di dover ricompilare il codice c++ con un compilatore diverso, in particolare un compilatore per win64. Io sto a zero con il c++ (programmo in Java), e vorrei trovare un modo facile per farlo, dato che devc++ non supporta la versione a 64 bit (o meglio compilare compila pure, ma con mingw per 32 bit...tantè che non cambia una accidenti nel tempo di esecuzione o quasi). Sicuramente tra di voi ci sono npersone molto più esperte di me, e cerco un aiuto (facile).
PS non posso modificare nulla all'interno del codice c, solo ricompilarlo....

Usare mingw a parte e compiare da terminale?
CodeBlocks dovrebbe venirti incontro se non ricordo male, come netbeans cno l'estensioni C++ o Eclipse con il supporto C/C++.

mux85
09-12-2010, 14:46
Visual Studio compila senza problemi a 64 bit. Almeno la versione 2010, quelle precedenti non ricordo.

Tommo
09-12-2010, 21:30
sudo use Visual Studio Express

will75g
14-12-2010, 01:01
Ma la versione linux è a 32 bit o 64? Che io sappia compilare a 64 bit può portare dei miglioramenti nelle prestazioni, ma nulla di drammatico. Questo mi fa pensare che il problema potrebbe essere altrove.

Due possibili spiegazioni:

- Forse stai facendo una build di debug e non una ottimizzata. Per attivare le ottimizzazioni da devc++ non saprei, non lo uso da anni, ma ci deve essere il modo di scegliere se fare una build debug o release (performante). In alternativa imposta manualmente i flags da passare al compilatore (usa -O3 per attivare le ottimizzazioni).

- Forse stai usando una versione vecchia di MinGW. In particolare vedo sul sito di devc++ che sono fermi alla vetusta 3.4.x che ottimizza molto meno delle più recenti 4.x. La soluzione in questo caso sarebbe aggiornare MinGW all'ultima versione o passare a Visual Studio.

Secondo me la soluzione più indolore, visto che non sei pratico di c++, è aggirare il problema e installare Linux sul tu PC. Suppongo che non vorrai pasticciare con partizioni e dual boot, quindi il modo più semplice è usare una virtual machine come VirtualBox con una distro Linux a tuo piacere. La virtual machine emulerà qualche componente, ma quello critico per la tua applicazione, ovvero la CPU, è virtualizzato, non emulato, quindi le prestazioni dovrebbero essere più o meno le stesse che con una installazione reale di Linux. Perderai un po' di tempo ad installare e a studiare la documentazione per capire come condividere i files tra Linux e Windows, ma alla fine secondo me fai prima che a smazzarti questi problemi di compilazione.