c_cpp:wxwidgets

差分

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

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
c_cpp:wxwidgets [2019/02/10 08:27] – [Windows 10 上の Visual C++ 2019 でビルドする場合] ともやん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
行 71: 行 80:
 > nmake /f makefile.vc BUILD=release SHARED=1 > nmake /f makefile.vc BUILD=release SHARED=1
 </code>※**TARGET_CPU=X64** を指定すると Win64 バージョンをビルドする。 </code>※**TARGET_CPU=X64** を指定すると Win64 バージョンをビルドする。
-  - 以下のように<code> +  - 以下のようにコンパイルが開始される。<code>
 Microsoft(R) Program Maintenance Utility Version 14.20.27305.0 Microsoft(R) Program Maintenance Utility Version 14.20.27305.0
 Copyright (C) Microsoft Corporation.  All rights reserved. Copyright (C) Microsoft Corporation.  All rights reserved.
行 84: 行 92:
 regerror.c regerror.c
 </code> </code>
 +  - ビルドが完了すると以下の出力が得られる。<code>
 +include path: %WXWIN%\include;%WXWIN%\msvc
 +library path(x86): %WXWIN%\lib\vc_lib
 +library path(x64): %WXWIN%\lib\vc_x64_lib
 +</code>
 +
 ==== サンプルアプリケーションのビルド ==== ==== サンプルアプリケーションのビルド ====
  以下の方法にて必要なサンプルのみをビルド/実行することができる。  以下の方法にて必要なサンプルのみをビルド/実行することができる。
-  - 「スタート」の「Visual Studio 2019」より「x64 Native Tools Command Prompt for VS 2019」を起動して、以下のコマンドを入力する。<code>+  - 「スタート」の「Visual Studio 2019」より「x86 Native Tools Command Prompt for VS 2019」または「x64 Native Tools Command Prompt for VS 2019」を起動して、以下のコマンドを入力する。<code>
 > cd %WXWIN%\samples > cd %WXWIN%\samples
 > nmake /f makefile.vc > nmake /f makefile.vc
-</code>\\ +</code> 
- サンプルアプリケーションのwxAUIデモの実行\\+ サンプルアプリケーションの wxAUI デモの実行\\
  {{:c_cpp:wxwidgets_on_vc2019_wxaui_demo.png?800|サンプルwxAUIデモ}}  {{:c_cpp:wxwidgets_on_vc2019_wxaui_demo.png?800|サンプルwxAUIデモ}}
  
行 159: 行 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
行 169: 行 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.1549754835.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)