インストール

Qt(MinGW版)のインストール、設定。取って出しのチェック用プログラムビルドをantで行います。
Qt libraries 4.7.2 for Windows (minGW 4.4, 321 MB)

  • qt-win-opensource-4.7.2-mingw.exeにてインストール
  • 途中、既にインストール済みのMinGWとバッティングするが、無視する
  • C:/Qt/4.7.2/binにパスを通す
チェック
  • [スタート][Qt by Nokia v4.7.2 (MinGW OpenSource)][Designer]を使ってサンプル用のダイアログを作成、untitled.uiとして保存
  • bashプロンプトで、次のようにqmake実行*1。ui_untitled.hが作成される。
$ qmake.exe -project untitled.ui
  • c++言語ソース anttest.cpp

#include "ui_untitled.h"

#include <iostream>
#include <iomanip>
using namespace std;

main( int argc, char* argv[] )
{
  cout <<"Hello, Qt's world!" <<endl;
  QApplication app(argc, argv);

  QDialog* qd=new QDialog();
  Ui_Dialog dialog;
  dialog.setupUi( qd );

  return qd->exec();
}


正しいかどうかさえもわからない。Qtの知識ゼロ。数年前にちょっと遊んだ記憶はありますが、当時の記憶ゼロですし。

<?xml version="1.0" encoding="UTF-8"?>
<project name="CheckANT" default="build"  basedir="."
	 xmlns:cpptasks="antlib:net.sf.antcontrib.cpptasks">

  <macrodef name="uic">
    <sequential>
      <exec executable="c:/Qt/4.7.2/bin/uic.exe">
	<arg line="untitled.ui"/>
	<arg line="-o ui_untitled.h"/>
      </exec>
    </sequential>
  </macrodef>

  <target name="build">
    <uic/>
    <cpptasks:cc outtype="executable" subsystem="gui" outfile="hello" 
		 rtti="true" exceptions="true" multithreaded="true">
     <fileset dir="." includes="*.cpp"/>
     <libset dir="c:/Qt/4.7.2/lib" libs="stdc++,qtmaind,QtGuid4,QtCored4"/>
     <includepath path="c:/Qt/4.7.2/include"/>
     <compilerarg value="-I'c:/Qt/4.7.2/include/QtCore'"/>
     <compilerarg value="-I'c:/Qt/4.7.2/include/QtGui'"/>
     <compilerarg value="-I'c:/Qt/4.7.2/include'"/>
     <compilerarg value="-I'.'"/>
     <compilerarg value="-I'c:/Qt/4.7.2/include/ActiveQt'"/>
     <compilerarg value="-I'debug'"/>
     <compilerarg value="-I'c:/Qt/4.7.2/mkspecs/default'"/>
     <linkerarg value="--enable-stdcall-fixup"/>
     <linkerarg value="-Wl"/>
     <linkerarg value="-enable-runtime-pseudo-reloc"/>
     <linkerarg value="-mthreads"/>
     <linkerarg value="--enable-auto-import"/>
    </cpptasks:cc>
  </target>

</project>


普通に「ant」して、ビルド。無理やりantと組み合わせましたが、Creator使うつもりなので、ちょっとした興味という程度。
結果は、OKとCancelボタンだけのダイアログがポップアップ。bashコンソールには「Hello, Qt's world!」の(まぬけな)メッセージ。動いてはいるようです。

結果

驚きました。Qtの完成度。見た目や機構ではなく、インストールからビルドまでの経緯がすっきりとしていて*2。某大手の開発環境設定はお約束事が多すぎて、ビルド前にめげてしまいますが。Qtの場合は、知識ゼロでも動いたのには驚いた。これは、Qtの機構の完成度も期待させるものだと思いました。
実際に使うのは、「Qt SDK by Nokia v2010.05 (open source)」に同梱される統合環境「QtCreator」だと思いますが、某大手統合環境みたいに、お約束満載でやりたいことがなかなかできないという事態にはならないだろうという期待感があります。
せっかくだから「Qt SDK 1.1 RC」使おうかな?
Qtダウンロードサイト

*1:最初、gmake("ジー"メイク)に見えてちょっと躊躇しました。よく見るとq(キュー)でした

*2:インストール決意してから、チェック用プログラムのビルド、実行まで30分程度で終わりました。Qtすんごい。これは、Qtの設計思想が優れているという意味でしょうね。それに比べて某大手の開発環境というのは・・・と思いますが、某大手は商業的な保護機構を積極的に取り入れることを売りにしているので、開発者よりもエンドユーザーにやさしいのでしょうね。開発者にとっては夾雑物ですが、エンドユーザ第一主義は設計思想としてはありな気もします。