いろいろうるさいwxICON
アイコンを読み込ませるのに一苦労したという話。
お手本のminimal.cppではxpm形式で読み込めているのだが、どうしてもそれができず.ico形式で読み込ませることに成功した。
まず、icoファイルをオブジェクトファイルに固めるためにリソースファイルを記述する。
//foo.rc //[適当なID] [ICON] [….ico]の順で並べる adrian ICON "applications-internet.ico" #include "wx/msw/wx.rc"
そしてそれをwindres.exeでオブジェクトファイルに固める。参考:GNU Binary Utilities: windres
$ windres -i foo.rc -O coff -o foo_rc.o ← これだと"wx/msw/wx.rc"が見つからないと出る。「No such file or directory」 $ windres -i foo.rc -O coff -o foo_rc.o `wx-config --cxxflags --libs` ← これだとエラーが出る。どうやらハイフンを二重にしてはいけないらしい。こんなの「--」 $ windres -i foo.rc -O coff -o foo_rc.o -I/mingw/include/wx-2.8 ← これならエラーが出ない
よって最終的にMakefileはこうなった
foo_rc.o: foo.rc $(WINDRES) -i "foo.rc" -O coff -o "foo_rc.o" -I/mingw/include/wx-2.8
//アイコンの読み込み自体はこれだけ
SetIcon(wxICON(adrian));