とりあえずcygwinでwxwidgetsを動かす

コンパイルだけで3日ぐらいかかったのでメモします。

まず最初に僕のPCの環境を適当にいうと、windows xp3の32bitです。
cygwin1.7.5は調子に乗ってフルインストールしました。

ここからwxwidgetsを入れる作業です。
このときはwxWidgets-2.8.11のwxAllのソースをとってきます。
解凍先はどこでもいいんですけどホームディレクトリに

~/wxWidgets-2.8.11

で解凍しました。

でホームから

mv wxWidgets-2.8.11 wxwidgets
cd wxwidgets

ここからが問題でconfigureやmakeで1時間ぐらい掛かるので失敗すると面倒くさいです。

僕は下記のコマンドで設定しました。

./configure --build=i686-pc-mingw32 --disable-threads --disable-precomp-headers --without-expat --with-opengl --disable-shared --enable-unicode

ちなみに最後の--enable-unicodeオプションを付けるとエラーが増えます。

次はwinsock.hとselect.hが競合しているようなので

mv /usr/include/sys/select.h /usr/include/sys/select.h.bak

こうします。

--enable-unicodeオプションをつけた場合はエディタで

vi src/msw/utils.cpp
471 wxChar *wxGetUserHome(const wxString& WXUNUSED(user))
↓
471 const wxWCharBuffer wxGetUserHome(const wxString& WXUNUSED(user))

に戻り値を書き換え、

make

で上手くコンパイル出来ました。

最後にマニュアル通りに

cp wx-config /usr/local/bin
chmod 755 /usr/local/bin/wx-config

この後は好きなディレクトリで作業します。
ネット上から適当にサンプルプログラムを拾ってきて

g++ -o hello hello.cpp `wx-config --cxxflags --libs`

コンパイル出来ると思います。
make installしなくても動くっぽい。

cp /usr/include/sys/select.h.bak /usr/include/sys/select.h

で元に戻しても大丈夫みたいです。

追記

openglコンパイルエラーだったorz
unicodeはソースをutf-8にして、日本語表示出来たからおkでいいや