Problem z wxWidgets (pod Linuksem)

0

Witam
Mam problem ze skompilowaniem kodu:

#include "wx/wxprec.h"
#ifdef WX_PRECOMP
#include "wx/wx.h"
#endif

class Aplik:public wxApp{ 
public:
    virtual bool OnInit();
};

IMPLEMENT_APP(Aplik);
bool Aplik :: OnInit()
{
    wxFrame* MainWindow = new wxFrame(NULL,-1,_T("ble ble"),wxPoint(50,50),wxSize(200,200),wxDEFAULT_FRAME_STYLE);
    MainWindow -> Show(TRUE);
    return TRUE;
}

A tak wygląda kompilacja i błędy:

g++ -o "pwx"  `wx-config --cxxflags --libs` "pwx.cpp" (w katalogu /home/user/c)
pwx.cpp:6: error: expected class-name before ‘{’ token
pwx.cpp:11: error: expected constructor, destructor, or type conversion before ‘;’ token
Kompilacja nie powiodła się
pwx.cpp: In member function ‘virtual bool Aplik::OnInit()’:
pwx.cpp:15: error: ‘wxFrame’ was not declared in this scope
pwx.cpp:15: error: ‘MainWindow’ was not declared in this scope
pwx.cpp:15: error: expected type-specifier before ‘wxFrame’
pwx.cpp:15: error: expected `;' before ‘wxFrame’

Dodam, że pod windowsem i kompilatorem wxDev-C++ udało mi sie to skompilować ale dopiero tworząc projekt a nie jako sam kod. Pod linuksem niestety mam taką sytuacje i nie za bardzo wiem o co chodzi, bo kod wydaje mi sie poprawny(w końcu pochodzi z ksiazki).
Z tego co rozumiem to kompilator nie widzi wxApp jako klasy która jak sądze jest zdefiniowana gdzieś w tych plikach nagłówkowych. Już nie wiem co o tym myśleć.
Jeśli ktoś wie o co chodzi będe wdzięczny za pomoc.

0

na linuksie poczytaj o pkg-conf

0

Z chęcią jeszce sobie o tym poczytam, ale na razie jeśli byś mógł i potrafił, byłbym wdzieczny gdybyś opisał mi jak rozwiązać ten problem.
Jestem z ludzi którzy najpierw udaja sie do google ze swoimi problemami i już poszukiwałem co tu może być nie tak.
Znalazłem na jakimś forum kogoś kto miał ten sam problem co ja i (jak do tej pory) także nie otrzymał rozwiazania.
O tym pkg-config też poszukałem. Jest dużo, na pewno sie da, ale jak na razie nie moge tego połączyć w sensowną całość.
Wiec gdybyś mógł to prosze o choćby podpowiedź.

z góry dzieki [soczek]

0

Za dużo nie wiem bo ja korzystam z GTKmm i nie wiem jak wygląda to z wxWidgets, ale piszę tak:
kompilator g++ <inne falgi="falgi"> pkg-config --cflags libglademm-2.4
linker g++ <inne flagi="flagi"> pkg-config --libs libglademm-2.4

0

w wxwidgets służy do tego właśnie wx-config i z tym problemu nie ma bo znajduje mi biblioteki wx.h i wxprec.h
Problem polega na tym, że kompilator twierdzi że NIE MA czegos takiego jak klasa wxApp która jeśli dobrze rozumiem powinna być w plikach nagłówkowych.
I właśnie tego nie rozumiem. Może jakieś jeszcze inne pomysły?

0

Jeśli kompilator widzi "wx.h", to widocznie go nie dołącza, bo WX_PRECOMP nie jest zdefiniowane. Zostaw tylko linię z "wx.h". Może coś pomyliłeś w konfiguracji, pewnie coś z prekompilowanymi nagłówkami. Nie użyłem tego nigdy, więc nie wiem dokładnie (tzn. zawsze sam tworzyłem projekty i PCH). W każdym razie, wystarczy tylko ta jedna linijka, żeby program kompilował się poprawnie.

0

Próbowalem już tak i sypie jeszce więcej błedów, wieć to raczej nie to :P

0

Napisz jakie błędy wtedy pokazuje. Na stronie głównej masz przykład razem z parametrami, które trzeba przekazać do kompilatora:

http://wxwidgets.org/docs/tutorials/hello.htm

1 użytkowników online, w tym zalogowanych: 0, gości: 1