install_linux_wxWidgets
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のソース?を参照してください。
Future's Laboratory 技術格納庫 2004-2013 Yutaka Yoshisaka.