個人的注意点
・find_libraryの第一引数はライブラリファイル名だが、.libはつけない
・gui_app: true を必ずつける
project('myapp', 'cpp') wxwidgets_incdir = include_directories( 'C:/libraries/wxWidgets/include', 'C:/libraries/wxWidgets/release/lib/vc_x64_dll/mswu' ) wxwidgets_libdir = 'C:/libraries/wxWidgets/release/lib/vc_x64_dll' cpp = meson.get_compiler('cpp') executable('myapp', 'main.cpp', gui_app: true, dependencies: [ cpp.find_library('wxbase32u' , dirs: wxwidgets_libdir), cpp.find_library('wxbase32u_net' , dirs: wxwidgets_libdir), cpp.find_library('wxbase32u_xml' , dirs: wxwidgets_libdir), cpp.find_library('wxmsw32u_adv' , dirs: wxwidgets_libdir), cpp.find_library('wxmsw32u_aui' , dirs: wxwidgets_libdir), cpp.find_library('wxmsw32u_core' , dirs: wxwidgets_libdir), cpp.find_library('wxmsw32u_gl' , dirs: wxwidgets_libdir), cpp.find_library('wxmsw32u_html' , dirs: wxwidgets_libdir), cpp.find_library('wxmsw32u_media' , dirs: wxwidgets_libdir), cpp.find_library('wxmsw32u_propgrid', dirs: wxwidgets_libdir), cpp.find_library('wxmsw32u_qa' , dirs: wxwidgets_libdir), cpp.find_library('wxmsw32u_ribbon' , dirs: wxwidgets_libdir), cpp.find_library('wxmsw32u_richtext', dirs: wxwidgets_libdir), cpp.find_library('wxmsw32u_stc' , dirs: wxwidgets_libdir), cpp.find_library('wxmsw32u_webview' , dirs: wxwidgets_libdir), cpp.find_library('wxmsw32u_xrc' , dirs: wxwidgets_libdir), ], include_directories: wxwidgets_incdir, cpp_args: [ '/D__WXMSW__' , # windows は /D '/DWXUSINGDLL' # linux系 は -D ], link_args: [ '/SUBSYSTEM:WINDOWS' ] )
// プリプロセッサに以下二つを追加 // __WXMSW__ // WXUSINGDLL // サブシステムをWindowsに設定(WinMainで呼び出すので) // Windows (/SUBSYSTEM:WINDOWS) #ifndef WX_PRECOMP #include <wx/wx.h> #endif #include <wx/frame.h> // wxFrameに必要 ///////////////////////////////////// ///////////////////////////////////// ///////////////////////////////////// // ウィンドウ作成 class MyFrame : public wxFrame { public: MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) : wxFrame(NULL, wxID_ANY, title, pos, size) { } private: // イベント処理しないときはこれを入れない // wxDECLARE_EVENT_TABLE(); }; ///////////////////////////////////// ///////////////////////////////////// ///////////////////////////////////// // wxWidgetsのアプリケーション作成 class MyApp : public wxApp { public: virtual bool OnInit() { MyFrame* frame = new MyFrame("Hello World", wxPoint(50, 50), wxSize(450, 340)); frame->Show(true); return true; } }; ///////////////////////////////////// ///////////////////////////////////// ///////////////////////////////////// // WinMainをマクロで定義 wxIMPLEMENT_APP(MyApp);