差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン | ||
c_cpp:wxwidgets [2019/02/09 14:28] – [Windows 上の Visual C++ 2008 Express Edition でビルドする場合] ともやん | 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 | ||
行 48: | 行 60: | ||
- タスクバーの「ここに入力して検索」に sysdm.cpl を入力して Enter キーを押す。 | - タスクバーの「ここに入力して検索」に sysdm.cpl を入力して Enter キーを押す。 | ||
- 「システムのプロパティ」の「詳細設定」タブの[環境変数]ボタンを押して「環境変数」画面を開く。 | - 「システムのプロパティ」の「詳細設定」タブの[環境変数]ボタンを押して「環境変数」画面を開く。 | ||
- | - 「環境変数」画面の[システム環境変数」の[新規]ボタンを押して以下の環境変数を登録する。\\ < | + | - 「環境変数」画面の[システム環境変数」の[新規]ボタンを押して以下の環境変数を登録する。< |
変数名: WXWIN | 変数名: WXWIN | ||
- | 変数値: C: | + | 変数値: C:\Libraries\wxWidgets |
</ | </ | ||
- タスクバーの「ここに入力して検索」に cmd を入力して「コマンドプロンプト」を「管理者として実行」する。 | - タスクバーの「ここに入力して検索」に cmd を入力して「コマンドプロンプト」を「管理者として実行」する。 | ||
- | - 「コマンドプロンプト」以下のコマンドを入力する。\\ < | + | - 「コマンドプロンプト」以下のコマンドを入力する。< |
> cd %WXWIN%\include\wx\msw\ | > cd %WXWIN%\include\wx\msw\ | ||
> mklink setup.h setup0.h | > mklink setup.h setup0.h | ||
setup.h << | setup.h << | ||
</ | </ | ||
- | - 「スタート」の「Visual Studio 2019」より「x64 Native Tools Command Prompt for VS 2019」を起動して、以下のコマンドを入力する。\\ < | + | - 「スタート」の「Visual Studio 2019」より「x86 Native Tools Command Prompt for VS 2019」または「x64 Native Tools Command Prompt for VS 2019」を起動して、以下のコマンドを入力する。< |
> cd %WXWIN%\build\msw | > cd %WXWIN%\build\msw | ||
> nmake /f makefile.vc | > nmake /f makefile.vc | ||
+ | </ | ||
+ | * リリースビルドは以下のコマンドを実行する。< | ||
+ | > nmake /f makefile.vc BUILD=release | ||
</ | </ | ||
- | * プロジェクトの変換確認ダイアログボックスに対して[すべてはい]ボタンをクリック。\\ (wx.sln が生成されるので、次回からは wx.sln を利用のこと。) | + | * リリースビルドの DLL バージョンは以下のコマンドを実行する。\\ < |
- | - ツールバーの[ソリューション構成]にて[Unicode Debug]、または、[Unicode Release]に切り替える。 | + | > nmake /f makefile.vc BUILD=release SHARED=1 |
- | * これは Static Library | + | </ |
- | * Dynamic Link Library | + | - 以下のようにコンパイルが開始される。< |
- | - ソリューションエクスプローラより[ソリューション ' | + | Microsoft(R) Program Maintenance Utility Version 14.20.27305.0 |
- | * バージョン 2.8.9 をビルドしてみたのだが、一度目のビルドは3つのプロジェクトでエラーが発生する。\\ | + | 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デモの実行\\ | + | |
- | {{: | + | |
=== 参考文献 === | === 参考文献 === | ||
以下のサイトを参考にさせて頂きました。情報を公開して下さっている方々に感謝します。\\ | 以下のサイトを参考にさせて頂きました。情報を公開して下さっている方々に感謝します。\\ | ||
行 145: | 行 173: | ||
==== コンパイル時に「エラー: | ==== コンパイル時に「エラー: | ||
+ | 古い wxWidgwts では wxOVERRIDE が未定義である為に発生する。\\ | ||
+ | 最新のライブラリを使えば問題は解決するが、自分で wxOVERRIDE を定義する事で回避可能でどのバージョンの wxWidgets でもコンパイルが可能になる。\\ | ||
< | < | ||
sample.cpp: | sample.cpp: | ||
行 155: | 行 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:// | ||
===== 参考文献 ===== | ===== 参考文献 ===== |