なんとな~くしあわせ?の日記

「そしてそれゆえ、知識そのものが力である」 (Nam et ipsa scientia potestas est.) 〜 フランシス・ベーコン

いろいろうるさい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));