トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

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.