[ C++で開発 ]

Cygwin上でQtを使う

QtはX Window System上のGUIツールキットの一つです。KDEデスクトップのベースとして使用されています。APIはC++言語として提供されています。Cygwin上のXでQtを使ってみます。

インストールと設定

KDE CygwinプロジェクトのQt

Qt 3.xだけをインストール

GUIプログラミングにQtを使用するだけの場合、KDE全体をインストールする必要はありません。そこで、Qtを使うのに必要なものだけインストールします。

必須なパッケージ

まず、Cygwinの以下のパッケージをあらかじめインストールします。(基本とXは勿論)

Qtの入手とインストール

KDE Cygwinプロジェクトのサイトから、Qtバイナリパッケージをダウンロードします。

直接ファイルをダウンロードした場合、Cygwinのルートディレクトリでこれを展開します。/usr/lib/qt3以下に展開されます。

Cygwinのsetupでインストールするには、以下のURLを指定します。

http://kde-cygwin.sourceforge.net/install

QT-3というカテゴリにあるqt_3が上記Qtバイナリパッケージに該当します。

/etc/profile.d/qt3.shが追加されるので、あらたなCygwinコンソールを起動します。

Qtプログラミング

Learning QtのHello World!

C++では、最初のコンパイル・リンク・実行と大きな壁があります。インストール後はまずこれを乗り越えることが課題となります。ここでは、KDEプログラミングのドキュメント"Lerning Qt(日本語版)"からhello-world.ccをもって実行までの過程を確認します。

hello-world.ccの記述

hello-world.cc
#include <qapplication.h>
#include <qlabel.h>

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    QLabel label("Hello World!", NULL);
    app.setMainWidget(&label);
    label.show();
    return app.exec();
}

コンパイル

Cygwin Qtは現在のところ、GCC3.xには対応できていません。そこで、GCC2.95.xを使ってコンパイル・リンクします。

Cygwin Qtをインストールすると、起動時に環境変数QTDIRが設定されます。/etc/profile.d/qt3.shがインストール時に配置され、起動時に実行されるようになるからです。

work$ echo $QTDIR
/usr/lib/qt3
work$ ls
hello-world.cc
work$ g++-2 -I$QTDIR/include -c hello-world.cc
work$ ls
hello-world.cc hello-world.o
work$

リンク

Qtのライブラリは、libqtをリンクします。また、auto-importを有効にする指定をリンカにするために、-Wl,--enamble-auto-importを設定しています。

work$ g++-2 -o hello-world hello-world.o -L$QTDIR/lib -lqt \
  -Wl,--enable-auto-import
work$ ls
hello-world.cc hello-world.exe hello-world.o
work$

実行

CygwinでXを起動し、上記で作成したhello-world.exeを実行します。


This page is written by Toru TAKAHASHI.(torutk@02.246.ne.jp)