Попытка скомпилировать простое приложение wxWidgets C++

У меня есть этот код с этой страницы:

http://docs.wxwidgets.org/stable/overview_helloworld.html

Я просто скопировал код снизу, чтобы понять, как начать работу с этой библиотекой. Я получил последнюю версию кода формы GitHub и запустив этот ./configure && make && make install казалось, все работало нормально.

Теперь это мой компилятор (я использую компилятор по умолчанию OSX 10.11):

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.0.0 (clang-700.1.76)
Target: x86_64-apple-darwin15.0.0
Thread model: posix

По какой-то причине, когда я запускаю это, g++ main.cppwx-config --cxxflags --libs-std=c++11

Я получаю эту ошибку:

main.cpp:5:21: error: expected class name
class MyApp: public wxApp
                    ^
main.cpp:10:23: error: unknown class name 'wxFrame'; did you mean 'MyFrame'?
class MyFrame: public wxFrame
                      ^~~~~~~
                      MyFrame
main.cpp:10:7: note: 'MyFrame' declared here
class MyFrame: public wxFrame
      ^
main.cpp:10:23: error: base class has incomplete type
class MyFrame: public wxFrame
               ~~~~~~~^~~~~~~
main.cpp:10:7: note: definition of 'MyFrame' is not complete until the closing '}'
class MyFrame: public wxFrame
      ^
main.cpp:13:42: error: unknown type name 'wxPoint'
    MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
                                         ^
main.cpp:13:62: error: unknown type name 'wxSize'
    MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
                                                             ^
main.cpp:15:18: error: unknown type name 'wxCommandEvent'
    void OnHello(wxCommandEvent& event);
                 ^
main.cpp:16:17: error: unknown type name 'wxCommandEvent'
    void OnExit(wxCommandEvent& event);
                ^
main.cpp:17:18: error: unknown type name 'wxCommandEvent'
    void OnAbout(wxCommandEvent& event);
                 ^
main.cpp:18:5: error: C++ requires a type specifier for all declarations
    wxDECLARE_EVENT_TABLE();
    ^
main.cpp:24:30: error: unknown type name 'wxFrame'
wxBEGIN_EVENT_TABLE(MyFrame, wxFrame)
                             ^
main.cpp:25:5: error: expected function body after function declarator
    EVT_MENU(ID_Hello,   MyFrame::OnHello)
    ^
main.cpp:32:50: error: use of undeclared identifier 'wxPoint'
    MyFrame *frame = new MyFrame( "Hello World", wxPoint(50, 50), wxSize(450, 340) );
                                                 ^
main.cpp:32:67: error: use of undeclared identifier 'wxSize'
    MyFrame *frame = new MyFrame( "Hello World", wxPoint(50, 50), wxSize(450, 340) );
                                                                  ^
main.cpp:33:12: error: no member named 'Show' in 'MyFrame'
    frame->Show( true );
    ~~~~~  ^
main.cpp:36:47: error: unknown type name 'wxPoint'
MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
                                              ^
main.cpp:36:67: error: unknown type name 'wxSize'
MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
                                                                  ^
main.cpp:39:5: error: unknown type name 'wxMenu'; did you mean 'NSMenu'?
    wxMenu *menuFile = new wxMenu;
    ^~~~~~
    NSMenu
/usr/local/include/wx-3.1/wx/defs.h:3088:28: note: 'NSMenu' declared here
DECLARE_WXCOCOA_OBJC_CLASS(NSMenu);
                           ^
/usr/local/include/wx-3.1/wx/defs.h:3059:16: note: expanded from macro 'DECLARE_WXCOCOA_OBJC_CLASS'
typedef struct klass *WX_##klass
               ^
main.cpp:39:28: error: unknown type name 'wxMenu'; did you mean 'NSMenu'?
    wxMenu *menuFile = new wxMenu;
                           ^~~~~~
                           NSMenu
/usr/local/include/wx-3.1/wx/defs.h:3088:28: note: 'NSMenu' declared here
DECLARE_WXCOCOA_OBJC_CLASS(NSMenu);
                           ^
/usr/local/include/wx-3.1/wx/defs.h:3059:16: note: expanded from macro 'DECLARE_WXCOCOA_OBJC_CLASS'
typedef struct klass *WX_##klass
               ^
main.cpp:39:28: error: allocation of incomplete type 'NSMenu'
    wxMenu *menuFile = new wxMenu;
                           ^~~~~~
/usr/local/include/wx-3.1/wx/defs.h:3088:28: note: forward declaration of 'NSMenu'
DECLARE_WXCOCOA_OBJC_CLASS(NSMenu);
                           ^
/usr/local/include/wx-3.1/wx/defs.h:3059:16: note: expanded from macro 'DECLARE_WXCOCOA_OBJC_CLASS'
typedef struct klass *WX_##klass
               ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.

Почему он ищет MyFrame и не использует wxFrame? Как я могу сделать это запустить?

PS: я удалил эти строки:

#ifndef WX_PRECOMP
    #include <wx/wx.h>
#endif

Если я их использую, то получаю это:

In file included from main.cpp:5:
In file included from /usr/local/include/wx-3.1/wx/wx.h:24:
In file included from /usr/local/include/wx-3.1/wx/event.h:21:
In file included from /usr/local/include/wx-3.1/wx/cursor.h:14:
/usr/local/include/wx-3.1/wx/gdiobj.h:89:5: warning: 'GetClassInfo' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
    wxDECLARE_DYNAMIC_CLASS(wxGDIObject);
    ^
/usr/local/include/wx-3.1/wx/rtti.h:142:5: note: expanded from macro 'wxDECLARE_DYNAMIC_CLASS'
    wxDECLARE_ABSTRACT_CLASS(name);  

... и продолжается.. в огромной трассе стека...

Любая помощь, пожалуйста?

0 ответов

Другие вопросы по тегам