c_cpp:wxwidgets

差分

このページの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
 </code> </code>
 +
 ===== ビルド/インストール ===== ===== ビルド/インストール =====
 +
 ==== Linux でインストールする場合 ==== ==== Linux でインストールする場合 ====
 wxGTK2\\ wxGTK2\\
行 42: 行 44:
  
 ==== Linux でビルドする場合 ==== ==== Linux でビルドする場合 ====
 +静的リンク
 +<code>
 +$ cd wxWidgets
 +$ ./configure --disable-shared
 +$ make
 +</code>
 +動的リンク
 <code> <code>
 $ cd wxWidgets $ cd wxWidgets
行 164: 行 173:
  
 ==== コンパイル時に「エラー: ‘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 でもコンパイルが可能になる。\\
 <code> <code>
 sample.cpp:33:25: error: expected ';' at end of member declaration sample.cpp:33:25: error: expected ';' at end of member declaration
行 174: 行 185:
                            wxEVT_IDLE                            wxEVT_IDLE
 </code> </code>
 +エラーを回避するコードの例は以下のようになる。(wxWidgets/defs.hとほぼ同じ)
 +<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 の
 +           サポートを示すものとして __cplusplus を定義していません(少なくとも 12 まで)ので、
 +           その場合は特別に処理してください。
 +
 +           また、キーワードはサポートされていますが、バージョン 8、9、10 で使用すると C4481
 +           コンパイラ警告 ("nonstandard extension used") が発生するため使用しないでください。
 +           気にしないのであれば、この警告を無効にして HAVE_OVERRIDE を事前定義することができます。
 +         */
 +        #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 */
 +</file>
 +[[https://github.com/wxWidgets/wxWidgets/blob/master/include/wx/defs.h|wxWidgets/defs.h at master · wxWidgets/wxWidgets · GitHub]]\\
  
 ===== 参考文献 ===== ===== 参考文献 =====
  • c_cpp/wxwidgets.txt
  • 最終更新: 2020/02/02 17:38
  • by ともやん