差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン | ||
c_cpp:wxwidgets [2019/02/10 08:45] – [サンプルアプリケーションのビルド] ともやん | c_cpp:wxwidgets [2020/02/02 12:14] – ともやん | ||
---|---|---|---|
行 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 | ||
行 164: | 行 173: | ||
==== コンパイル時に「エラー: | ==== コンパイル時に「エラー: | ||
+ | 古い wxWidgwts では wxOVERRIDE が未定義である為に発生する。\\ | ||
+ | 最新のライブラリを使えば問題は解決するが、自分で wxOVERRIDE を定義する事で回避可能でどのバージョンの wxWidgets でもコンパイルが可能になる。\\ | ||
< | < | ||
sample.cpp: | sample.cpp: | ||
行 174: | 行 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:// | ||
===== 参考文献 ===== | ===== 参考文献 ===== |