Visual Studio 2015によるwxWidgetsを用いた開発環境構築

Windows、Linux、macOSの全てでできるだけソースファイルの変更なしにGUIを書きたい、なおかつあんまり美しくないものは表に出したくない(ソースファイルですw)、そしてできればネイティブのAPIをできるだけ使うようなライブラリがいいなぁ、となると、ほぼ一択になりました。

手元の環境であるWindows10とVisual Studio 2015を使ってwxWidgetsの環境を整える手順をまとめました。Windowsだとバイナリが準備されておりますが、せっかくなのでソースからビルドしたいと思います。その後で、wxWidgetsを使って付属のサンプルプログラムminimalをビルド&実行してみたいと思います。環境としては、Windows10とVisual Studio 2015を使っており、対象となるwxWidgetsは現在の安定版である3.0.3とします。

wxWidgetsのビルド

プロジェクトファイルを開く

ソースファイルをダウンロードして、buildフォルダの中のbuildのさらに下のmswがありますが、その中にバージョン3.0.3ですとwx_vc12.slnというVisual Studio 2012用のプロジェクトファイルがあるので、これを開きます。そういたしますと、Visual Studio 2015用に自動的に変換を行ってくれます。要は、VS 2015を対象に書いておりますけど、恐らくwxWidgetsで準備されているプロジェクトファイルとVisual Studioのバージョンが少々食い違っても、VSが勝手に変換してくれるでしょう、ということだと思います。

ビルドの構成

その後はプラットフォームをx86かx64(用いたいアプリケーションの種類に応じて)でいじったり、プロジェクト構成を「Debug/Release」や「DLL Debug/DLL Release」を選択します。プロジェクト構成のうち、前者はスタティックリンクライブラリを作成し、後者はダイナミックリンクライブラリを作ります。その後、ビルドメニューよりソリューションのビルドを選択すれば、それぞれのライブラリが作られます。無事に終了すれば完了です。以下のサンプルプログラムではスタティックリンクを行うので「Debug/Release」でビルドしておいてください。構成は以下の図の赤で囲んだ部分で設定します。

サンプルプログラムminimalのビルド

Samplesのディレクトリ内から移動させずにそのままビルド

サンプルプログラムはその名の通り直下のsamplesフォルダに色々と入っておりますが、ここではminimalを使ってみます。Visual Studio用のソリューションファイル(slnファイル)は付いておらず、プロジェクトファイル(vcprojファイル)のみです。そこで、まず最初に

  • ソリューションを作ります

ファイルメニューから新規プロジェクトを選択し、「その他のプロジェクトの種類」の中にあるVisual Studioソリューションを選択します。作成する場所はvcprojファイルと同じ場所に作成したのでいいと思います。次に

  • プロジェクトファイルの追加を行います

ソリューションエクスプローラから、追加メニュー中にある、既存のプロジェクトの追加で、プロジェクトファイル(minimal_vc9.vcproj)を加えてやります(上の図の黄色で囲んだ部分を右クリック)。自動的にVisual Studio 2015用にアップグレードされます。wxWidgetsのsamplesフォルダの場所からminimalを動かさなければこのままでもビルドが通るはずです。

samplesフォルダからコピーしてビルド

もし他の場所に移動させた場合はincludeファイルやライブラリが見付からないはずなので、

  • ヘッダファイル・ライブラリ・リソースのパス設定の変更(必要な場合のみ)

が必要で、プロジェクトのプロパティ(上の図のオレンジを右クリック)の「C/C++」の中にある「追加のインクルードディレクトリ」にある

.\..\..\lib\vc_x64_lib\mswud;.\..\..\include;.;.\..\..\samples

を変更します。直接書き換えてもいいのですが、環境変数を使うと別のコンピュータでも環境変数の変更のみでソースファイルの書き換えが不要になります。ここでは「WXWIDGETS_PATH」という環境変数を設定し(設定方法は省略しますが検索すれば見付かります)、wxWidgetsの解凍したフォルダのディレクトリを指定したとすると、

$(WXWIDGETS_PATH)\lib\vc_x64_lib\mswud;$(WXWIDGETS_PATH)\include;.;$(WXWIDGETS_PATH)\samples;%(AdditionalIncludeDirectories)

のように書き換え、プロジェクトのプロパティのリンカの設定の追加のライブラリ ディレクトリも同様に

$(WXWIDGETS_PATH)\lib\vc_x64_lib;%(AdditionalLibraryDirectories)

として、プロジェクトのプロパティのリソースの追加のインクルードディレクトリも

$(WXWIDGETS_PATH)\lib\vc_x64_lib\mswud;$(WXWIDGETS_PATH)\include;.;$(WXWIDGETS_PATH)\samples;%(AdditionalIncludeDirectories)

としてやります。下の図の赤で囲んだ部分を選択してそれぞれのディレクトリ設定を出し、右側の緑の部分を書き換えます。

最後にminimal.cppのプログラム中に

SetIcon(wxICON(sample));

という部分があり、ここでソリューションエクスプローラ中のリソース内のsample.rcを参照しておりますが、これはminimalフォルダの外にあります。よって、minimalフォルダを移動させると相対パスが変わり、アクセスできません。従って一度削除して、再度sample.rcを追加してください。一番上の図の緑の部分を右クリックで変更します。

いざ実行

ビルドが通って、実行(デバッグメニューのデバッグの実行、もしくはデバッグなしの実行)しますと、以下のような画面が現れるはずです。

しまった~、hogeを入れ忘れたorz

コメント

タイトルとURLをコピーしました