差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| c_cpp:wxwidgets [2019/02/09 23:34] – [Windows 10 上の Visual C++ 2019 でビルドする場合] ともやん | c_cpp:wxwidgets [2020/02/02 17:38] (現在) – ともやん | ||
|---|---|---|---|
| 行 29: | 行 29: | ||
| > git submodule update --init | > git submodule update --init | ||
| </ | </ | ||
| + | |||
| ===== ビルド/ | ===== ビルド/ | ||
| + | |||
| ==== Linux でインストールする場合 ==== | ==== Linux でインストールする場合 ==== | ||
| wxGTK2\\ | wxGTK2\\ | ||
| 行 42: | 行 44: | ||
| ==== Linux でビルドする場合 ==== | ==== Linux でビルドする場合 ==== | ||
| + | 静的リンク | ||
| + | < | ||
| + | $ cd wxWidgets | ||
| + | $ ./configure --disable-shared | ||
| + | $ make | ||
| + | </ | ||
| + | 動的リンク | ||
| < | < | ||
| $ cd wxWidgets | $ cd wxWidgets | ||
| 行 49: | 行 58: | ||
| ==== Windows 10 上の Visual C++ 2019 でビルドする場合 ==== | ==== Windows 10 上の Visual C++ 2019 でビルドする場合 ==== | ||
| - | - タスクバーの「ここに入力して検索」に sysdm.cpl を入力して Enter キーを押す。 | + | - タスクバーの「ここに入力して検索」に |
| - | - 「システムのプロパティ」の「詳細設定」タブの[環境変数]ボタンを押して「環境変数」画面を開く。 | + | - 「システムのプロパティ」の「詳細設定」タブの [環境変数] ボタンを押して「環境変数」画面を開く。 |
| - | - 「環境変数」画面の[システム環境変数」の[新規]ボタンを押して以下の環境変数を登録する。< | + | - 「環境変数」画面の [システム環境変数」の [新規] ボタンを押して以下の環境変数を登録する。< |
| 変数名: WXWIN | 変数名: WXWIN | ||
| 変数値: C: | 変数値: C: | ||
| 行 61: | 行 70: | ||
| setup.h << | setup.h << | ||
| </ | </ | ||
| - | - 「スタート」の「Visual Studio 2019」より「x64 Native Tools Command Prompt for VS 2019」を起動して、以下のコマンドを入力する。< | + | - 「スタート」の「Visual Studio 2019」より「x86 Native Tools Command Prompt for VS 2019」または「x64 Native Tools Command Prompt for VS 2019」を起動して、以下のコマンドを入力する。< |
| > cd %WXWIN%\build\msw | > cd %WXWIN%\build\msw | ||
| > nmake /f makefile.vc | > nmake /f makefile.vc | ||
| 行 71: | 行 80: | ||
| > nmake /f makefile.vc BUILD=release SHARED=1 | > nmake /f makefile.vc BUILD=release SHARED=1 | ||
| </ | </ | ||
| + | - 以下のようにコンパイルが開始される。< | ||
| + | Microsoft(R) Program Maintenance Utility Version 14.20.27305.0 | ||
| + | Copyright (C) Microsoft Corporation. | ||
| + | |||
| + | if not exist vc_mswud_x64 mkdir vc_mswud_x64 | ||
| + | cl /c /nologo /TC / | ||
| + | regcomp.c | ||
| + | cl /c /nologo /TC / | ||
| + | regexec.c | ||
| + | cl /c /nologo /TC / | ||
| + | regerror.c | ||
| + | </ | ||
| + | - ビルドが完了すると以下の出力が得られる。< | ||
| + | include path: %WXWIN%\include; | ||
| + | library path(x86): %WXWIN%\lib\vc_lib | ||
| + | library path(x64): %WXWIN%\lib\vc_x64_lib | ||
| + | </ | ||
| ==== サンプルアプリケーションのビルド ==== | ==== サンプルアプリケーションのビルド ==== | ||
| 以下の方法にて必要なサンプルのみをビルド/ | 以下の方法にて必要なサンプルのみをビルド/ | ||
| - | - 「スタート」の「Visual Studio 2019」より「x64 Native Tools Command Prompt for VS 2019」を起動して、以下のコマンドを入力する。< | + | - 「スタート」の「Visual Studio 2019」より「x86 Native Tools Command Prompt for VS 2019」または「x64 Native Tools Command Prompt for VS 2019」を起動して、以下のコマンドを入力する。< |
| > cd %WXWIN%\samples | > cd %WXWIN%\samples | ||
| > nmake /f makefile.vc | > nmake /f makefile.vc | ||
| - | </ | + | </ |
| - | サンプルアプリケーションのwxAUIデモの実行\\ | + | サンプルアプリケーションの wxAUI デモの実行\\ |
| {{: | {{: | ||
| 行 147: | 行 173: | ||
| ==== コンパイル時に「エラー: | ==== コンパイル時に「エラー: | ||
| + | 古い wxWidgwts では wxOVERRIDE が未定義である為に発生する。\\ | ||
| + | 最新のライブラリを使えば問題は解決するが、自分で wxOVERRIDE を定義する事で回避可能でどのバージョンの wxWidgets でもコンパイルが可能になる。\\ | ||
| < | < | ||
| sample.cpp: | sample.cpp: | ||
| 行 157: | 行 185: | ||
| | | ||
| </ | </ | ||
| + | エラーを回避するコードの例は以下のようになる。(wxWidgets/ | ||
| + | <file cpp Common.h> | ||
| + | /* オーバーライドキーワードのサポートを確認する */ | ||
| + | #ifndef HAVE_OVERRIDE | ||
| + | #if __cplusplus >= 201103L | ||
| + | /* すべての C++11 コンパイラはそれを持つべきです */ | ||
| + | #define HAVE_OVERRIDE | ||
| + | #elif wxCHECK_VISUALC_VERSION(11) | ||
| + | /* | ||
| + | VC++ はバージョン8以降で override キーワードをサポートしていますが、C++11 の | ||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | */ | ||
| + | #define HAVE_OVERRIDE | ||
| + | #elif WX_HAS_CLANG_FEATURE(cxx_override_control) | ||
| + | #define HAVE_OVERRIDE | ||
| + | #endif | ||
| + | |||
| + | #ifdef HAVE_OVERRIDE | ||
| + | #define wxOVERRIDE override | ||
| + | #else /* !HAVE_OVERRIDE */ | ||
| + | #define wxOVERRIDE | ||
| + | #endif /* HAVE_OVERRIDE */ | ||
| + | #endif /* !HAVE_OVERRIDE */ | ||
| + | </ | ||
| + | [[https:// | ||
| ===== 参考文献 ===== | ===== 参考文献 ===== | ||