Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi > Linux per newbies

WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
Con Midnight, Blizzard tenta il colpaccio: il player housing sbarca finalmente su Azeroth insieme a una Quel'Thalas ricostruita da zero. Tra il dramma della famiglia Ventolesto e il nuovo Prey System, ecco com'è la nuova espansione di World of Warcraft
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-07-2007, 16:12   #1
Pipe
Senior Member
 
L'Avatar di Pipe
 
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..
__________________
... Ho l'addome globoso per adipe ...
Pipe è offline   Rispondi citando il messaggio o parte di esso
Old 17-07-2007, 16:24   #2
W.S.
Senior Member
 
L'Avatar di W.S.
 
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. ]
W.S. è offline   Rispondi citando il messaggio o parte di esso
Old 17-07-2007, 16:50   #3
Pipe
Senior Member
 
L'Avatar di Pipe
 
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;
}
su ubuntu mi da degli errori, su windows no... perchè?
__________________
... Ho l'addome globoso per adipe ...
Pipe è offline   Rispondi citando il messaggio o parte di esso
Old 17-07-2007, 17:10   #4
W.S.
Senior Member
 
L'Avatar di W.S.
 
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. ]
W.S. è offline   Rispondi citando il messaggio o parte di esso
Old 17-07-2007, 17:54   #5
Pipe
Senior Member
 
L'Avatar di Pipe
 
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?
__________________
... Ho l'addome globoso per adipe ...
Pipe è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2007, 08:17   #6
W.S.
Senior Member
 
L'Avatar di W.S.
 
Iscritto dal: Nov 2005
Messaggi: 1868
Quote:
Originariamente inviato da Pipe Guarda i messaggi
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?
non devi cambiare modo di programmare, devi solo installare le librerie base che ti mancano

la dichiarazione del namespace dipende da quanto è rigoroso il compilatore, così come il mettere o meno ".h"
__________________
[ W.S. ]
W.S. è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2007, 12:17   #7
Pipe
Senior Member
 
L'Avatar di Pipe
 
Iscritto dal: Jun 2006
Messaggi: 427
ok ... un'altra cosa... qual'è la differenza tra g++ e gcc ?sono entrambi compilatori no?
__________________
... Ho l'addome globoso per adipe ...
Pipe è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2007, 12:18   #8
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
Quote:
Originariamente inviato da Pipe Guarda i messaggi
ok ... un'altra cosa... qual'è la differenza tra g++ e gcc ?sono entrambi compilatori no?
si il primo per c++ l'altro per c
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 19-07-2007, 15:13   #9
aik
Member
 
L'Avatar di aik
 
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:
Originariamente inviato da Linus torvalds
The fact is, C++ compilers are not trustworthy. They were even worse in
1992, but some fundamental facts haven't changed:

- the whole C++ exception handling thing is fundamentally broken. It's
_especially_ broken for kernels.
- any compiler or language that likes to hide things like memory
allocations behind your back just isn't a good choice for a kernel.
- you can write object-oriented code (useful for filesystems etc) in C,
_without_ the crap that is C++.
aik è offline   Rispondi citando il messaggio o parte di esso
Old 19-07-2007, 16:01   #10
pfinet
Member
 
L'Avatar di pfinet
 
Iscritto dal: Mar 2007
Messaggi: 271
Quote:
Originariamente inviato da Pipe Guarda i messaggi
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?
Una cosa è il linguaggio in se, un'altra sono le librerie a cui ti appoggi per scrivere il tuo programma.

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.
pfinet è offline   Rispondi citando il messaggio o parte di esso
Old 19-07-2007, 19:53   #11
Pipe
Senior Member
 
L'Avatar di Pipe
 
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
__________________
... Ho l'addome globoso per adipe ...
Pipe è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2007, 10:04   #12
pfinet
Member
 
L'Avatar di pfinet
 
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.
pfinet è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2007, 10:29   #13
adalucio
Member
 
L'Avatar di adalucio
 
Iscritto dal: May 2004
Messaggi: 276
Quote:
Originariamente inviato da pfinet Guarda i messaggi
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.
Scusa ma anche le gtk vanno su windows.

o sbaglio?

adalucio è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2007, 10:42   #14
pfinet
Member
 
L'Avatar di pfinet
 
Iscritto dal: Mar 2007
Messaggi: 271
Quote:
Originariamente inviato da adalucio Guarda i messaggi
Scusa ma anche le gtk vanno su windows.

o sbaglio?

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.
pfinet è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
WhatsApp si aggiorna con una nuova app c...
Windows 11 23H2, ricerca nel menu Start ...
Google Chrome introduce il layout vertic...
Artemis II: per la prima volta degli ast...
Battery swap e flotte smart: così nasce ...
Apple affronta un dilemma con il MacBook...
ECOVACS X11 OMNICYCLONE: 19.500 Pa, moci...
ll nuovo HONOR 600 Lite 5G arriva in Ita...
Kindle, addio allo store sui vecchi e-re...
DJI Flip Combo Fly More a 599€ invece di...
Addio cavi e adattatori multipli: Techly...
MOVA M50 Ultra: scopa elettrica con brac...
Amazon taglia i prezzi su GPU, CPU, alim...
Snapdragon 8 Elite Gen 6 Pro: migliorame...
Mythos di Anthropic trasforma il 72% del...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:13.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v