c_cpp:wxwidgets

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
c_cpp:wxwidgets [2019/02/10 08:45] – [サンプルアプリケーションのビルド] ともやんc_cpp:wxwidgets [2020/02/02 17:38] (現在) ともやん
行 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
行 49: 行 58:
  
 ==== Windows 10 上の Visual C++ 2019 でビルドする場合 ==== ==== Windows 10 上の Visual C++ 2019 でビルドする場合 ====
-  - タスクバーの「ここに入力して検索」に sysdm.cpl を入力して Enter キーを押す。 +  - タスクバーの「ここに入力して検索」に **sysdm.cpl** を入力して Enter キーを押す。 
-  - 「システムのプロパティ」の「詳細設定」タブの[環境変数]ボタンを押して「環境変数」画面を開く。 +  - 「システムのプロパティ」の「詳細設定」タブの [環境変数] ボタンを押して「環境変数」画面を開く。 
-  - 「環境変数」画面の[システム環境変数」の[新規]ボタンを押して以下の環境変数を登録する。<code>+  - 「環境変数」画面の [システム環境変数」の [新規] ボタンを押して以下の環境変数を登録する。<code>
 変数名: WXWIN 変数名: WXWIN
 変数値: C:\Libraries\wxWidgets 変数値: C:\Libraries\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.1549755959.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)