差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン | ||
c_cpp:wxwidgets [2019/02/09 08:59] – ともやん | c_cpp:wxwidgets [2020/02/02 12:14] – ともやん | ||
---|---|---|---|
行 19: | 行 19: | ||
* < | * < | ||
* < | * < | ||
- | - Windows では wxWidgets-x.x.x.7z の内容を C:\ などに解凍する。 | + | - Windows では wxWidgets-x.x.x.7z の内容を C:\Libraries\ などに解凍する。 |
==== GitHub より clone する場合 ==== | ==== GitHub より clone する場合 ==== | ||
[[https:// | [[https:// | ||
< | < | ||
- | $ git clone https:// | + | $ git clone --recurse-submodules |
+ | </ | ||
+ | > cd wxWidgets | ||
+ | > git submodule update --init | ||
</ | </ | ||
+ | |||
===== ビルド/ | ===== ビルド/ | ||
+ | |||
==== Linux でインストールする場合 ==== | ==== Linux でインストールする場合 ==== | ||
wxGTK2\\ | wxGTK2\\ | ||
行 39: | 行 44: | ||
==== Linux でビルドする場合 ==== | ==== Linux でビルドする場合 ==== | ||
+ | 静的リンク | ||
+ | < | ||
+ | $ cd wxWidgets | ||
+ | $ ./configure --disable-shared | ||
+ | $ make | ||
+ | </ | ||
+ | 動的リンク | ||
< | < | ||
$ cd wxWidgets | $ cd wxWidgets | ||
行 45: | 行 57: | ||
</ | </ | ||
- | ==== Windows 上の Visual C++ 2008 Express Edition | + | ==== Windows |
- | - wxWidgetsインストールフォルダの include\wx\msw\setup.h を修正する。\\ | + | - タスクバーの「ここに入力して検索」に sysdm.cpl を入力して Enter キーを押す。 |
- | * 主な修正項目\\ **wxUSE_GLCANVAS** | + | - 「システムのプロパティ」の「詳細設定」タブの[環境変数]ボタンを押して「環境変数」画面を開く。 |
- | - Visual C++ 2008 Express Editionを起動して、wxWidgetsインストールフォルダの build\msw\wx.dsw | + | |
- | | + | 変数名: WXWIN |
- | - ツールバーの[ソリューション構成]にて[Unicode Debug]、または、[Unicode Release]に切り替える。 | + | 変数値: C: |
- | * これは Static Library | + | </ |
- | * Dynamic Link Library | + | - タスクバーの「ここに入力して検索」に cmd を入力して「コマンドプロンプト」を「管理者として実行」する。 |
- | - ソリューションエクスプローラより[ソリューション ' | + | - 「コマンドプロンプト」以下のコマンドを入力する。< |
- | * バージョン | + | > cd %WXWIN%\include\wx\msw\ |
+ | > mklink setup.h setup0.h | ||
+ | setup.h << | ||
+ | </ | ||
+ | - 「スタート」の「Visual Studio 2019」より「x86 Native Tools Command Prompt for VS 2019」または「x64 Native Tools Command Prompt for VS 2019」を起動して、以下のコマンドを入力する。< | ||
+ | > cd %WXWIN%\build\msw | ||
+ | > nmake /f makefile.vc | ||
+ | </ | ||
+ | * リリースビルドは以下のコマンドを実行する。< | ||
+ | > nmake /f makefile.vc BUILD=release | ||
+ | </ | ||
+ | * リリースビルドの DLL バージョンは以下のコマンドを実行する。\\ < | ||
+ | > 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 | ||
+ | </ | ||
==== サンプルアプリケーションのビルド ==== | ==== サンプルアプリケーションのビルド ==== | ||
以下の方法にて必要なサンプルのみをビルド/ | 以下の方法にて必要なサンプルのみをビルド/ | ||
- | - wxWidgetsインストールフォルダの samples\samples.dsw を開く。\\ (samples.sln が生成されるので、次回からは samples.sln | + | - 「スタート」の「Visual Studio 2019」より「x86 Native Tools Command Prompt for VS 2019」または「x64 Native Tools Command Prompt for VS 2019」を起動して、以下のコマンドを入力する。< |
- | * プロジェクトの変換確認ダイアログボックスに対して[すべてはい]ボタンをクリック。 | + | > cd %WXWIN%\samples |
- | - ツールバーの[ソリューション構成]にて[Unicode Debug]、または、[Unicode Release]に切り替える。 | + | > nmake /f makefile.vc |
- | * 上記のライブラリをビルドする際に選択したものでなければビルドエラーとなるので注意。 | + | </ |
- | - ビルド/実行したいアプリケーションのプロジェクトを右クリックし、[スタートアップ プロジェクトに設定]をクリック。 | + | サンプルアプリケーションの wxAUI デモの実行\\ |
- | - ツールバーの[デバッグ開始]をクリック。 | + | {{: |
- | \\ | + | |
- | サンプルアプリケーションのwxAUIデモの実行\\ | + | |
- | {{: | + | |
=== 参考文献 === | === 参考文献 === | ||
以下のサイトを参考にさせて頂きました。情報を公開して下さっている方々に感謝します。\\ | 以下のサイトを参考にさせて頂きました。情報を公開して下さっている方々に感謝します。\\ | ||
行 131: | 行 172: | ||
===== トラブルシューティング ===== | ===== トラブルシューティング ===== | ||
- | ==== エラー: ‘wxOVERRIDE’ does not name a type; did you mean ‘wxEVT_IDLE’? | + | ==== コンパイル時に「エラー: ‘wxOVERRIDE’ does not name a type; did you mean ‘wxEVT_IDLE’? |
+ | 古い wxWidgwts では wxOVERRIDE が未定義である為に発生する。\\ | ||
+ | 最新のライブラリを使えば問題は解決するが、自分で wxOVERRIDE を定義する事で回避可能でどのバージョンの wxWidgets でもコンパイルが可能になる。\\ | ||
< | < | ||
sample.cpp: | sample.cpp: | ||
行 142: | 行 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:// | ||
===== 参考文献 ===== | ===== 参考文献 ===== |