!!!TurboLinux FUJIでのwxWidgetsのビルド(GTK) 「http://www.wxwidgets.org/」より「wxGTK-2.6.2.tar.gz」をダウンロード します。 ここでは「GTK2.0」でwxWidgetsを実現するものとします。 「TurboLinux FUJI」では標準インストールでGTK2.0はインストールされています。 しかし、開発に必要なファイルはTurboLinuxインストール時のオプションで指定しないといけません。 !!TurboLinux上で必要なファイルをインストールする 以下の作業は、rootユーザで行うようにします。 wxWidgetsを入れる前に[[RPM]]にて確認してください。 rpm -q gtk2-devel にて、GTK2の開発環境がインストールされているか確認します。 これをインストールするには、「pango-devel、glib_devel、atk-devel」などが 別途必要です。 rpm -iv gtk2-devel-2.6.10-2.i686.rpm にて、pango-devel/glib_devel/atk-develがない、と警告が出る場合は 同様にRPMがインストール済みか確認して、なければインストールします。 これらの開発に必要なdevelのRPMは、TurboLinux FUJIの3枚目のCD-ROM内(/turbo/RPMS内)にあります。 wxWidgetsではとにかくGTK2が必要ですので、これはきちんと インストールしておくようにしてください。 !!wxWidgetsのビルド 以下の作業は、rootユーザで行うようにします。 ダウンロードしたファイルを解凍し、その解凍したディレクトリに移動します。 tar xvfz wxGTK-2.6.2.tar.gz cd wxGTK-2.6.2 ここで「buildgtk」ディレクトリを作成し、そこに移動します。 mkdir buildgtk cd buildgtk ビルドの設定を行います。 ../configure --with-gtk ここで、必要なライブラリがないと警告が出ます。 次にソースのビルドを行います。少し時間がかかります。 make makeが完了した後、必要なinclude/lib類をOSの必要なディレクトリに 「make install」にてコピーします。 make install 最後に「ldconfig」でシステムに共有ライブラリを認識させます。 ldconfig これでwxWidgetsに関するインストールは完了です。 「/usr/local/lib」にライブラリが 「/usr/local/include/wx2.6」にインクルードファイルがコピーされます (もしかしたら、TurboLinux以外では異なる場所にコピーされるかもしれません)。 解凍した「wxGTK-2.6.2」ディレクトリ以降の、作業用のファイルは不要になりますので削除してOKです。 次に、wxWidgetsをコンパイルする場合のmakeファイルについての説明です。 !!Makefile wxWidgetsのサンプルファイルとして「Makefile」がありますが、 これはちょっと分かりにくいです。 スマートにしたのを書いてみます。 「\」は改行せずにつないで書いてください。 [Makefile] # -- Cコンパイラ -- CC = g++ # -- リンカ -- LINKER = g++ # -- include 時に必要なフラグ -- CPPFLAGS = -DWX_PRECOMP -DNO_GCC_PRAGMA -DGTK_NO_CHECK_CASTS \ -I/usr/local/lib/wx/include/gtk2-ansi-release-2.6 -I/usr/local/include/wx-2.6 \ -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -pthread -I/usr/include/gtk-2.0 \ -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 \ -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/freetype2/config \ -I/usr/include/fontconfig -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include \ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D_LARGEFILE_SOURCE=1 CXXFLAGS = -O2 -pthread -Wall -Wundef -Wno-ctor-dtor-privacy WXFLAGS = -D__WXGTK__ -DWXUSINGDLL CFLAGS = $(WXFLAGS) $(CXXFLAGS) $(CPPFLAGS) # -- リンク時に必要なフラグ --- LFLAGS = -pthread -L/usr/X11R6/lib -L/usr/local/lib -lwx_gtk2_core-2.6 \ -lwx_base-2.6 -pthread -L/usr/X11R6/lib -lz -ldl -lm -pthread -L/usr/X11R6/lib \ -lgtk-x11-2.0 -lgdk-x11-2.0 -lXrandr -lXi -lXinerama -lXfixes -lXcursor \ -lXext -latk-1.0 -lgdk_pixbuf-2.0 -lpangoxft-1.0 -lXft -lXrender -lpangox-1.0 \ -lX11 -lpangoft2-1.0 -lfontconfig -lfreetype -lz -lpango-1.0 -lm -lgobject-2.0 \ -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0 -lXinerama -lXxf86vm -lpng -lz -ljpeg -ltiff # -- ファイルのコンパイル、リンク --- TARGET = wtest OBJS = MainApp.o MainFrame.o MainView.o ALL : $(TARGET) # -- objファイルの作成 MainApp.o: MainApp.cpp MainApp.h $(CC) -c $(CFLAGS) MainApp.cpp -o MainApp.o MainFrame.o: MainFrame.cpp MainFrame.h $(CC) -c $(CFLAGS) MainFrame.cpp -o MainFrame.o MainView.o: MainView.cpp MainView.h $(CC) -c $(CFLAGS) MainView.cpp -o MainView.o # -- 実行ファイルの作成 $(TARGET): $(OBJS) $(LINKER) $(LFLAGS) -o $(TARGET) $(OBJS) 上記のコンパイル、リンクの「$(CC)」の前、「$(LINKER)」の前は 「TAB」です(スペースではないです)。タブにしないと ビルドがうまくいなかなくなるので注意です。 コンパイルとリンクの設定が結構長いですね。 これは、wxWidgetsのサンプルをビルドしたときの設定をそのまま 転記してます。 MainApp.cpp/h、MainFrame.cpp/h、MainView.cpp/hをそれぞれ コンパイルして、リンクして「wtest」という実行ファイルを 生成しています。 これを雛形にして、実際のソースを説明していきます。 ソース内部については、Windowsと同じです。 以降は、[[もっとも簡単なwxWidgetsのソース|helloworld_src_wxWidgets]]を参照してください。