|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2006
Messaggi: 427
|
C++
Ragazzi come si programma in c++ in linux, ho visto che cambia molto dalla programmazione in c++ dal borland di winbdows..
__________________
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1868
|
si programma in C++.
A seconda delle librerie grafiche (e non) che vuoi usare cambiano le funzioni, ma il linguaggio rimane quello. A cosa ti riferisci in particolare? All'interfaccia grafica? Per quello vedi "C++ qt3" o "C++ gtk" per trovare qualche doc
__________________
[ W.S. ] |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2006
Messaggi: 427
|
bhè per il fato che usa librerie diverse... iostream.h non mi sembra neanche contemplato!per es:
Codice:
#include <iostream.h>
void main(){
cout << "ciao" << endl;
}
__________________
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1868
|
che errori da?
Vedo che non hai definito il namespace, prova con: #include <iostream> // per le lib di default non serve .h using namespace std; void main(){ cout << "ciao" << endl; } se da ancora errori è probabile che ti manchi qualche libreria. Le libc6-dev ci sono?
__________________
[ W.S. ] |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2006
Messaggi: 427
|
ho capito, ma la mia richiesta non è la correzione di quell'esempio, ma è capire perchè se lo compilo su windows non mi da erore, mentre su linux devo addirittura cambiare il modo di programmare; insomma il c++ è c++ ovunque no?
__________________
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1868
|
Quote:
la dichiarazione del namespace dipende da quanto è rigoroso il compilatore, così come il mettere o meno ".h"
__________________
[ W.S. ] |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jun 2006
Messaggi: 427
|
ok
... un'altra cosa... qual'è la differenza tra g++ e gcc ?sono entrambi compilatori no?
__________________
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
si il primo per c++ l'altro per c
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
|
|
|
|
|
|
#9 | |
|
Member
Iscritto dal: Nov 2004
Città: pisa
Messaggi: 204
|
Il c++ tra windows e linux NON CAMBIA.
probabilmente quello che cambia nel tuo caso è il compilatore, se usavi gcc su windows su linux sarà la stessa cosa. I compilatori c++ sono abbastanza diversi tra loro perchè alcuni fanno le stesse cose in modo diverso, non seguono alla lettera l'ISO c++,etc.. Guarda che ne pensa Linus Torvalds dei compilatori c++ (e del c++ in generale) (per la programmazione del kernel): Quote:
|
|
|
|
|
|
|
#10 | |
|
Member
Iscritto dal: Mar 2007
Messaggi: 271
|
Quote:
Il linguaggio C++ è sempre quello, cio che cambia da un ambiente all'altro sono le librerie che hai a disposizione, o il modo in cui sono implementate, che puo variare da sistema a sistema. Tutti i compilatori C++ supportano come minimo una libreria che si chiama C standard library e che fornisce delle funzioni standard, come quelle di iostream.h, math.h etc. Il codice che hai scritto sopra compila sia su windows che su linux, perche fa uso di funzioni che fanno parte della libreria standard del C, che è implementata appunto sia su windows che su linux. Eventualmente possono esserci delle differenze, ad esempio sul gcc le librerie standard sono racchiuse nel namespace std in modo da non inquinare lo spazio dei nomi, mentre su windows non sono inserite in alcun namespace. Ecco perche se non scrivi using namespace std non te lo compila. Poi ovviamente per fare il tuo programma usi anche delle altre librerie, ad esempio se crei un'interfaccia grafica su windows usi le MFC, su linux le GTK. Se vuoi scrivere codice portatile sia su windows che su linux per creare programmi complessi senza troppi problemi, devi appoggiarti a un framework multipiattaforma disponibile su entrambe le piattaforme, come le wxWidget o le QT. Ultima modifica di pfinet : 19-07-2007 alle 16:08. |
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jun 2006
Messaggi: 427
|
ho capito...però se utilizzo g++ invece di gcc? devo usare lo stesso using namespace std ?
scusate queste domandine banali, ma sono ancora una piccola schiappa
__________________
|
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Mar 2007
Messaggi: 271
|
Il gcc, che sta per GNU Compiler Collection, è una collezione di compilatori, e il g++ è il front-end del gcc per il linguaggio c++, mentre ad esempio gnat è il front-end che ti permette di compilare codice Ada sempre col gcc, poi c'è quello per Java, Fortran...
Puoi scrivere benissimo g++ main.cpp oppure gcc main.cpp e funziona allo stesso modo. Esegui 'info gcc' per leggere la documentazione, c'è scritto tutto quanto. In particolare, probabilmente ti serve sapere come si linkano delle librerie esterne al tuo programma, da un occhio alle opzioni -l e -L, nella pagina link options. Se ti serve un IDE, prova Eclipse o kDevelop, mentre se ti serve un GUI designer per disegnare le interfaccie grafiche dipende dalla libreria che usi: glade per le GTK, qtDesigner per le QT, DialogBlocks per le wxWidget... Ultima modifica di pfinet : 20-07-2007 alle 10:22. |
|
|
|
|
|
#13 | |
|
Member
Iscritto dal: May 2004
Messaggi: 276
|
Quote:
o sbaglio? |
|
|
|
|
|
|
#14 |
|
Member
Iscritto dal: Mar 2007
Messaggi: 271
|
si, pero è diverso: le wxWidget usano i controlli nativi del sistema su cui il programma viene compilato, mentre le GTK emulano i controlli del sistema sottostante.
Ad esempio, se scrivo questo codice con le wxWidget: MyFrame *a = new MyFrame(NULL, "CIAO"); a->Show(true); e lo compilo su windows, mi crea una finestra usando le librerie MFC native di Windows, se lo compilo su Linux mi crea una finestra usando le GTK. Allo stesso modo, se lo compilo su Mac OS usa le librerie native di quel sistema (che non mi ricordo quali sono In questo modo ottieni un feel&look del tutto simile all'originale, e le prestazioni sono le stesse di un programma scritto direttamente con le librerie native della piatatforma su cui è compilato. Ultima modifica di pfinet : 20-07-2007 alle 10:47. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:49.












... un'altra cosa... qual'è la differenza tra g++ e gcc ?sono entrambi compilatori no?
ho concluso con: kvegeta, doctordb, Leland Gaunt.








