PDA

View Full Version : [C++] wxwindows e linux


Oiziorbaf
21-11-2004, 18:17
Ciao a tutti....vi spiego brevemente il mio problema....ho installato la libreria....ho scritto il programma...ma come diceva la guida ke sto leggendo per compilare queste librerie non si riesce col modo tradizionele, ovvero g++ esempio.cpp...così volevo sapere qual'era il modo per farlo!!!
mi chiedevo se esistesse un IDE che lo potesse fare!!
ciao,
grazie a kiunque mi risponda!

AnonimoVeneziano
21-11-2004, 19:14
Dopo esserti assicurato di aver installato WXWindows in maniera corretta prova a compilare in questo modo :

g++ esempio.cpp `wx-config --libs` `wx-config --cxxflags` -o esempio

Ciao

PS = L'eseguibile generato da g++ in questo caso sarà (ovviamente) "esempio" , e non il classico "a.out"

Oiziorbaf
21-11-2004, 19:32
Funzia....xò min da un errore nella compilazione:

io faccio questo programma:

# include <wx/wx.h>

class BasicApp:public wxApp {

public:
BasicApp();
virtual bool OnInit();
private:
wxFrame* frame;
};

DECLARE_APP(BasicApp)
IMPLEMENT_APP(BasicApp)

BasicApp::BasicApp() {
frame= new wxFrame(NULL,-1,"Il mio primo programma a finestre");
}

bool BasicApp::OnInit() {
frame->Show(true);
return true;
}



e poi come errori mi da:

basic.cpp: In function `wxApp* wxCreateApp()':
basic.cpp:13: cannot allocate an object of type `BasicApp'
basic.cpp:13: because the following virtual functions are abstract:
/usr/include/wx/app.h:131: virtual int wxAppBase::OnRun()
basic.cpp: In constructor `BasicApp::BasicApp()':
basic.cpp:16: invalid use of undefined type `struct wxFrame'
/usr/include/wx/log.h:28: forward declaration of `struct wxFrame'
basic.cpp: In member function `virtual bool BasicApp::OnInit()':
basic.cpp:20: invalid use of undefined type `struct wxFrame'
/usr/include/wx/log.h:28: forward declaration of `struct wxFrame'


e io il programma l'ho copiato tale e quale dal libro ke sto leggendo!!

Passy
22-11-2004, 10:10
Vi seguo

RaouL_BennetH
22-11-2004, 12:12
Originariamente inviato da Oiziorbaf
Ciao a tutti....vi spiego brevemente il mio problema....ho installato la libreria....ho scritto il programma...ma come diceva la guida ke sto leggendo per compilare queste librerie non si riesce col modo tradizionele, ovvero g++ esempio.cpp...così volevo sapere qual'era il modo per farlo!!!
mi chiedevo se esistesse un IDE che lo potesse fare!!
ciao,
grazie a kiunque mi risponda!

un up per te, dato che anche io ho problemi molto simili e, con il tutorial del sito ufficiale, non sono nemmeno riuscito a fare un "hello world" :(

Oiziorbaf
22-11-2004, 13:33
e allora lo faccio anke io....up!!!

:cry:

anx721
22-11-2004, 15:16
Il programmino che hai postato, compilato sotto windows con MinGWDeveloperStudio non dà errori di compilazione e funziona:


# include <wx/wx.h>

class BasicApp : public wxApp {

public:
BasicApp();
virtual bool OnInit();
private:
wxFrame* frame;
};

DECLARE_APP(BasicApp)
IMPLEMENT_APP(BasicApp)

BasicApp::BasicApp() {
frame= new wxFrame(NULL,-1,"Il mio primo programma a finestre");
}

bool BasicApp::OnInit() {
frame->Show(true);
return true;
}

RaouL_BennetH
22-11-2004, 15:23
Originariamente inviato da anx721
Il programmino che hai postato, compilato sotto windows con MinGWDeveloperStudio non dà errori di compilazione e funziona:


# include <wx/wx.h>

class BasicApp : public wxApp {

public:
BasicApp();
virtual bool OnInit();
private:
wxFrame* frame;
};

DECLARE_APP(BasicApp)
IMPLEMENT_APP(BasicApp)

BasicApp::BasicApp() {
frame= new wxFrame(NULL,-1,"Il mio primo programma a finestre");
}

bool BasicApp::OnInit() {
frame->Show(true);
return true;
}



in windows anche a me funziona con mingw, è in linux che evidentemente non
linko qualcosa :muro:

anx721
22-11-2004, 15:32
Gli errori di Oiziorbaf mi sembrano errori di compilazione e non di linking; te che errori hai?

RaouL_BennetH
22-11-2004, 15:36
Originariamente inviato da anx721
Gli errori di Oiziorbaf mi sembrano errori di compilazione e non di linking; te che errori hai?


g++ prova.cpp `wx-config --libs` `wx-config --cxxflags` -o prova

prova.cpp: In function `wxApp* wxCreateApp()':
prova.cpp:13: error: cannot allocate an object of type `BasicApp'
prova.cpp:13: error: because the following virtual functions are abstract:
/usr/include/wx/app.h:131: error: virtual int wxAppBase::OnRun()
prova.cpp: In constructor `BasicApp::BasicApp()':
prova.cpp:16: error: invalid use of undefined type `struct wxFrame'
/usr/include/wx/log.h:28: error: forward declaration of `struct wxFrame'
prova.cpp: In member function `virtual bool BasicApp::OnInit()':
prova.cpp:20: error: `Show' undeclared (first use this function)
prova.cpp:20: error: (Each undeclared identifier is reported only once for each
function it appears in.)



praticamente, gli stessi :(

Oiziorbaf
22-11-2004, 17:27
Appunto infatti prima avevo provato a compilarlo nel modo normale g++ nomefile.cpp e mi è venuta fuori una lista interminabile di errori...così facendo invece ne sono venuti fuori solo 3.....ma ke nn si riescono a risolvere...e ke visto ke in questo argomento sono un newbie non ho la più pallida idea di come faccio a risolverli!!!!

:muro:

cionci
23-11-2004, 08:48
Prova ad includere wxframe.h...

Oiziorbaf
23-11-2004, 13:19
No...nn funzia lo stesso.......vi prego aiutatemi!!!!

:cry:

Oiziorbaf
23-11-2004, 16:49
Scusate moderatori se faccio ancora up....ma è molto importante!!!

Banus
23-11-2004, 17:21
Prova a scaricare e compilare gli esempi sul sito ufficiale.

Comunque nei miei esperimenti con le wxWindows non ho mai usato DECLARE_APP. Prova a toglierlo, non credo ti serva.

sandor78
23-11-2004, 19:33
Non sono sicuro, ma se definisci un membro funzione di una classe al di difuori del campo d'azione della classe stessa , ma nello stesso file, la devi dichiarare come inline function.....


inline BasicApp::BasicApp(){
....
...
}

cionci
23-11-2004, 19:37
Non è necessario...

cionci
23-11-2004, 19:44
Prova a compilare l'esempio che ti attacco...

Oiziorbaf
24-11-2004, 20:42
Se provo a compilarlo mi da un casino di errori....ma tu l'ahi fatto in win o su linux???

cionci
24-11-2004, 20:43
Su windows...

AnonimoVeneziano
24-11-2004, 20:53
L'ho già consigliato a Oiziorbaf , e lo consiglio a tutti voi , se volete risolvere chiedete alla mailing list di WxWindows , lì sicuramente potranno darvi un chiarimento , o magari cercate qualcosa nella documentazione riguardo a Linux

Ciao

Icedguardian
25-11-2004, 10:03
[OT] Scusate se vado un po' OT ma volevo chiedere se qualcuno sa perche' le wxPython sotto win sono così "brutte"?? Non si integrano con l'interfaccia di win in maniera corretta, lo sfondo delle dialog per es e' grigio scuro. Succede la stessa cosa anche con le wxWidgets??
Sotto Linux usano le GTK e si vede ma sotto win fanno cagare :(

Oiziorbaf
25-11-2004, 16:56
Ma non c'è nessuno ke riesce a compilare le wxWindows o wxWdigets su linux??? xkè se le hanno fatte anke per linux un modo ci deve pur essere.....ho visto nella documentazione delle wxwindows ke c'era scritto ke per compilare sotto linux bisogna usare motif...ho provato a cercarlo ma nn ho trovato niente.....:confused: