Newsgroup: it.lavoro.informatica
Titolo: compilatore c++ (domanda pseudotecnica)

Qualcuno sa se esiste un compilatore C++ per windows (diciamo Windows 7)
che abbia le seguenti caratteristiche:
 
- sia gratuito (e questo esclude visual studio)
 
- sia utilizzabile anche per  scopi commerciali 
  (e questo esclude visual studio express)
 
- non leghi i suoi output alla presenza di una dll come accade ad esempio
  per il g++ di cygwin (se si produce un eseguibile con il g++ di cygwin,
  poi questo non gira se sul PC su cui deve essere eseguito non c'e' la
  dll cygwin1.dll (e, a seconda di cosa c'e' nel sorgente, possono essere 
  richieste anche altre dll, tipo cygstdc++-6.dll). Quindi questo esclude
il 
  compilatore di cygwin
 
- possibilmente l'installazione di tale compilatore non vada in conflitto
con le installazioni di cygwin (quando ho provato a installare il
compilatore mingw, mi ha smesso di funzionare cygwin, per cui escluderei
mingw)
 
- supporti lo standard C++11 (o almeno una buona parte di esso).
 
 
Credo che il compilatore gnu gcc (g++) 4.7 potrebbe fare al caso mio,
potrei prenderne i sorgenti e compilarli ma per compilarlo per windows per
ora ho a disposizione solo il compilatore di cygwin per cui non so se poi
funzionerebbe. Ottentendo un gcc 4.7 compilato con il gcc/g++ 4.5 di
cygwin sicuramente il gcc 4.7 richiederebbe cygwin1.dll per essere
lanciato.
Non so se poi gli eseguibili prodotti compilando con tale compilatore
richiederebbero ancora cygwin1.dll, anche se immagino di si' (in ogni caso
il compilatore 4.5 di cygwin e' da ieri che sta compilando i sorgenti del
gcc 4-7: l'avevo lasciato ieri sera prima di andare a dormire che
compilava, stamattina stava ancora compilando e sta ancora compilando
mentre scrivo questo post. E in ogni caso oggi sono gia' dovuto intevenire
"a mano" una paio di volte perche' mentre compilava una parte [che sembra
essere una implementazione di java all'interno del gcc] mi ha dato alcuni
errori).
Potrei anche provare a compilare i sorgenti del gcc con Visual Studio
Express, ma:
 
1) penso che farei una fatica immane, perche' immagino che dovrei
ricrearmi tutto il progetto sotto l'environment di Visual Studio
 
2) Se producessi un gcc eseguibile in questo modo, poi probabilmente non
potrei usarlo per eventuali scopi commerciali, visto che quell'eseguibile
sarebbe stato prodotto con Visual Studio Express che non e' usabile per
scopi commerciali.
 
 
Qualche idea ?
 
Ciao,
Marco
 
-- 
 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
 
 
 

 
mingw se fai applicazioni "standard"
 
ma se ad esempio usi la libreria Qt necessita di 1 o 2 dll (non ricordo 
ora) esterne.

   (e questo esclude visual studio express)
 
Metto le mani avanti, non vorrei dire una scemata
o aver interpretato male la richiesta... :)
 
Sicuro non si possa usare per scopi commerciali?
Un po' di tempo fa mi ero imbattuto in questo post:
http://tinyurl.com/9w54ldp
 
 
Inolte l'ultimo CTP di VS2012 supporta buona parte
del nuovo standard.

> Qualche idea ?
 
mingw + eclipse  + cdt  ... sotto macchina virtuale.
 
la mia esperienza, però, è che sotto  win è meglio usare visual-
studio.


http://www.youtube.com/watch?v=_2RjhGKlD-k
 
 
 

 Credo che il compilatore gnu gcc (g++) 4.7 potrebbe fare al caso mio,
 
OK, maaa... perché non QtCreator? Lo sto usando in questo periodo ed è un gran bell'ambiente!
 
-- 
Ciao!
Luca
 

   (e questo esclude visual studio express)
 
 
Per niente, VS Express (almeno le versioni fino alla 2010) è perfettamente utilizzabile per scopi commerciali, quelli qui sotto sono un paio di link ma ne trovi quanti ne vuoi, e in ogni caso basta scaricarlo e leggere la licenza:
 
http://web.archive.org/web/20101020114424/http://www.microsoft.com/express/Support/Support-faq.aspx
 
 
http://www.techpowerup.com/forums/showthread.php?t=172627
 
 
ciao
 
 
m.

   (e questo esclude visual studio express)
 
Anch'io ricordo si possa utilizzare in tal modo.
Non ho pero' ricontrollato.
 
 
Comunque, hai provato a guardare questo:
http://clang.llvm.org/get_started.html
 
 
Non so se faccia al caso tuo, io non l'ho mai usato... e' giusto un spunto,
verifica tu se risponde ai tuoi requisiti.
 
 bye
 

 (msvcrt...)
 
Non necessariamente: mi sembra si potesse usare anche un CRT statico (anche
se di fatto sei molto vincolato in caso contrario, in quanto *tutte* le
librerie che usi non devono utilizzare msvcrt...).
 
 bye

 OK, maaa... perché non QtCreator? Lo sto usando in questo periodo ed è un gran bell'ambiente!
 
ok, ma sotto che compilatore usa ?

 ok, ma sotto che compilatore usa ?
 
Credo - credo, non sono un esperto, io sono eoni che non programmo in C++ - gcc. Peraltro, se capisco bene, passando prima per un precompilatore in modo da ricodificare quel che loro chiamano signals e slots.
 
Io non facevo riferimento a quello, suggerivo l'ambiente di sviluppo.
 
-- 
Ciao!
Luca

 ok, ma sotto che compilatore usa ?
 
mingw, che include, oppure VS varie versioni sotto windows
gcc sotto linux
 

 OK, maaa... perché non QtCreator? Lo sto usando in questo periodo ed è un
gran bell'ambiente!
 
Mah, sostanzialmente perche' non l'avevo mai sentito nominare. Lo provero'
appena ho un po' di tempo.
 
Tra l'altro il nome mi fa pensare che abbia qualcosa a che fare con le
librerie Qt (che, anche se non le so usare al momento, potrebbero venirmi
utili in futuro)


 utili in futuro)
 
Considerato che lo stesso codice GUI lo puoi compilare e far girare su 
windows, mac e linux (embedded e non), e a breve introdurranno 
ufficialmente (esiste già in maniera non ufficiale) a android, iOs, 
Blackberry mentre andrà a cadere il supporto a S60...
 
aggiungi che ora è un progetto "opensource" a doppia licenza,
http://qt-project.org/
 per la versione "free" usabile anche 
commercialmente e con TUTTI i sorgenti disponibili
e ora la Digia pacchettizza una versione alla quale fornisce un supporto 
ufficiale a pagamento qualora ti necessitasse (alcune società non 
vogliono open-source puro)


 
 
in questi giorni le sto cross-compilando per raspberry !

 in questi giorni le sto cross-compilando per raspberry !
 
Si, dimenticavo, anche raspberry è supportato essendo un linux...

 OK, maaa... perché non QtCreator? Lo sto usando in questo periodo ed è un gran bell'ambiente!
 
Stavo per suggerirlo io. Forse non è il 100% della stabilità, ma mi
pare ben fatto. E' vero che è orientato all'utilizzo delle Qt ma nulla
vieta di usarlo per C++ standard.
 
bye!

 ha scritto nel messaggio 
news:kackpi$503$1...@news.newsland.it...

Cosa devi scrivere in C++... codice di sistema?
Cos� per curiosit�
 
ciauz
 
 
 


prova a vadere se questo
http://www.openwatcom.org
 
 
fa al caso tuo.


Non credo supporti lo standard C++11. Ed è solo a 32 bit.
 
 

 Non credo supporti lo standard C++11.
 
 
qualcosa ci dovrebbe essere
 
http://www.openwatcom.org/index.php/Cpp_Standards_Conformance
 


ai tempi (parlo della metà anni 90) era un signor compilatore anche come 
aderenza agli standard. però mi sa che siamo rimasti più o meno fermi ad 
allora.

 ok, ma sotto che compilatore usa ?
 
L'ho appena scaricato e ho iniziato a fare i primi esperimenti, a dir la
verita' poco incoraggianti, in quanto mi e' sembrato di capire che tale
QtCreator e' un ide che usa il compilatore che tu gli dici di usare (mi
pare che comunque lui, al momento dell'installazione, vada a cercarsi sul
PC quelli che hai installato. Nel mio caso ha trovato Visual Studio
express, ma ci deve essere qualche problema perche' non riesco a compilare
una mazza).
 
Comunque dai primi 20 minuti di esperimenti mi pare di capire che
QtCreator e' solo l'IDE e quale compilatore usare devi dirglielo te o
comunque deve trovarne qualcuno gia' installato sul tuo PC.
 
 
 Almeno, io per ora non ho trovato un compilatore integrato per default
nell'IDE. 
 
Per ora avevo installato solo QtCreator, senza librerie Qt perche' al
momento mi serve solo un compilatore C++, non librerie grafiche, pero'
sembra che appunto non ci sia nessun compilatore "sotto" l'IDE (e, da quel
poco che ho visto, mi pare anche di capire che tale QtCreator senza
librerie Qt serva veramente a poco o niente).
 
Ho appena lanciato l'installazione delle librerie Qt (e, il pacchetto di
installazione, al proprio interno, pare contenere anche l'IDE Qt Creator).
Vediamo se in questo modo c'e' anche un compilatore fornito con tutto il
pacchetto.
 
Ciao,
Marco.


 pacchetto.
 
Le cose sono migliorate ma di poco; pare che ancora ci siano dei problemi
non so se legati al fatto che le qt per windows sembrano essere a 32 bit,
mentre al momento ho windows 7 (64 bit) e i vari compilatori che ho
probabilmente sono a 64 bit (infatti ottengo un messaggio del tipo)
 
 
Version name: Qt 5.0.0 MSVC2010 32 bit SDK
 
qmake location C:QtQt5.0.0-rc25.0.0-rc2msvc2010binqmake.exe
 
No compiler can produce code for this Qt version. Please define one or
more compilers 
 
 
 
(il compilatore che QtCreator in qualche modo sembra riuscire a "vedere"
fino ad ora e' Visual C++ 11.0, che non so se e' quello contenuto in
Visual Studio 12 [penso di si, altrimenti non so come faccia a vederlo]).
 
Va beh, per ora le mie prove con QtCreator terminano qui 
 
 
 Ciao,
 Marco.
 
 
 
-- 
Per i lavoratori a bordo dei cacciabombardieri non esistono sabati, ne'
domeniche. Mai un momento di pausa.
"Per costruire 12 ospedali servono 250 milioni di dollari, quel che ci
costano 8 ore di guerra in Iraq...si prendessero un giorno di ferie!".
Gino Strada


 Qualche idea ?
 
Si. Installa mingw, nella versione che preferisci, come fanno tutti e
dopo pochi minuti potrai compilare con una combinazione di -static e/o
-static-libstdc++ o simili (non li ricordo a memoria per Windows)
senza portarti dietro ne' libgcc ne' altro.

 senza portarti dietro ne' libgcc ne' altro.
 
ci riprovero', ma se mi rispu**ana cygwin, potra' essere  un problema.
 
Ciao,
Marco.


 ci riprovero', ma se mi rispu**ana cygwin, potra' essere  un problema.
 
Marco, seguimi.
 
Installazioni di cygwin e mingw di default, tutto liscio. Dal terminal
di cygwin:
 
$ uname -a
CYGWIN_NT-6.1-WOW64 hostname 1.7.17(0.262/5/3) 2012-10-19 14:39 i686
Cygwin
 
$ which g++
/usr/bin/g++
 
$ g++ -v
Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs
Configured with: /managed/gcc-build/final-v3-bootstrap/gcc-3.4.4-999/
configure --verbose --program-suffix=-3 --prefix=/usr --exec-prefix=/
usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --
mandir=/usr/share/man --infodir=/usr/share/info --enable-
languages=c,ada,c++,d,f77,pascal,java,objc --enable-nls --without-
included-gettext --enable-version-specific-runtime-libs --without-x --
enable-libgcj --disable-java-awt --with-system-zlib --enable-
interpreter --disable-libgcj-debug --enable-threads=posix --enable-
java-gc=boehm --disable-win32-registry --enable-sjlj-exceptions --
enable-hash-synchronization --enable-libstdcxx-debug
Thread model: posix
gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
 
$ /cygdrive/c/MinGW/bin/g++ -v
Using built-in specs.
COLLECT_GCC=C:\MinGW\bin\g++.exe
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.6.2/lto-
wrapper.exe
Target: mingw32
Configured with: ../gcc-4.6.2/configure --enable-languages=c,c+
+,ada,fortran,objc,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --
enable-shared --enable-libgomp --disable-win32-registry --enable-
libstdcxx-debug --enable-version-specific-runtime-libs --build=mingw32
--prefix=/mingw
Thread model: win32
gcc version 4.6.2 (GCC)
 
$ export PATH=/cygdrive/c/MinGW/bin:$PATH && which g++
/cygdrive/c/MinGW/bin/g++
 
$ echo 'main(){*(int *)0=42;}' > _.cpp && g++ _.cpp && ./a
Segmentation fault
 
$ #perfetto.
 
$ objdump -p a.exe|grep dll
        DLL Name: KERNEL32.dll
        DLL Name: msvcrt.dll
        DLL Name: libgcc_s_dw2-1.dll
 
$ #anzi, ancora più evidente con:
 
$ cygcheck ./a.exe|head -2
C:\cygwin\home\me\a.exe
  C:\Windows\system32\KERNEL32.dll
 
$ /usr/bin/g++ _.cpp && cygcheck ./a.exe|head -3
C:\cygwin\home\me\a.exe
  C:\cygwin\bin\cygwin1.dll
    C:\Windows\system32\KERNEL32.dll
 
 
Meno di 10 minuti il tutto. Vai tranquillo.

 Meno di 10 minuti il tutto. Vai tranquillo.
Appena ho un po' di tempo ci riprovo.
 
Ciao,
Marco
