ラベル Qt の投稿を表示しています。 すべての投稿を表示
ラベル Qt の投稿を表示しています。 すべての投稿を表示

2010年8月6日金曜日

[Qt]: Qt Creatorを使ったオブジェクト指向プログラミング授業資料

今更だが,去年にQtを使った授業資料を作成したことを思い出した.せっかくなのでここでURLを晒してみる.

オブジェクト指向プログラミング

当時1.0系が出た直後のQt Creatorを使ってやってみたのだが,かなり難航したのを覚えている.
僕は教育体験という形で授業資料を作ったのだが,Javaとは違い人によって動いたり動かなかったりしたのが大変だったなあ.
# なぜかARMの開発環境をインストールしている学生がいて,GCCがconflictしてたりなんてこともあった

そんなわけで,もう1年も経って情報は古いけど,見てみたい人はどうぞ.サポートはしません.
内容としては,初めてオブジェクト指向プログラミングをやる人のための授業なので,詳しい人は見る価値はあまり無いです.

2009年4月21日火曜日

[Qt][Windows]: Qt CreatorでBuildに失敗する




Qt 4.5 & Qt Creator 1.0.0でのTips.

Windows環境でBuildに失敗するときはプロジェクトパスに日本語が含まれている可能性がある.
Qtライブラリに入っているQStringやQDir,QFileは完全Unicode対応なので,見落としやすい.
恐らくqmakeをコマンドライン経由で叩いている関係なのだろう.

Windows環境は色々と面倒な事が発生して大変だなぁ.みんなMac OS X環境になれば楽なのに:-P

2009年4月18日土曜日

[Windows][Qt]: Windows&Qt 4.5環境でstatic linkedなプログラムを作る



Windows上でQt SDK 4.5を使ってコードを書いていて,コンパイルすると,通常はshared libraryなコードがはき出される.
shared linkはファイルサイズが小さくなって良いのだが,動作環境にQt 4.5のライブラリが無いと動かないので,配布には不向きである.

というわけで,Qtでqmakeしたコードがstatic linkになるように設定する.
Qt公式ドキュメントでは,Qtのインストールディレクトリで
configure -static
すればいいことになっている.

しかし,Qt 4.5でこれをやると途中で止まってしまい,Makefileが生成されない.具体的には

Generating Makefiles...
Could not find mkspecs for your QMAKESPEC(win32-g++) after trying:
C:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_create_more/Troll/4.5.0/qt\mkspecs
Error processing project file: C:/Qt/2009.01/qt/projects.pro
Qmake failed, return code 3

といって止まってしまう.

エラーメッセージをよく見ると,mkspecsのパスがC:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_create_more/Troll/4.5.0/qt\mkspecsというところに決め打たれているのが原因であることが分かる.
そもそも本来のmkspecsはデフォルトではC:\Qt\2009.01\qt\mkspecsになるはずである.

調べてみると,とりあえずの回避策が見つかった.
http://www.qtcentre.org/forum/archive/index.php/t-19227.html

具体的には,JunctionというWindows上でシンボリックリンクを実現するソフトを使い,決め打たれているパスから正しいmkspecsへのリンクを貼ってやる事になる.
まずはJunctionのダウンロードページからJunctionをダウンロードし,インストールする.

その後,C:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_create_more/Trollディレクトリまでを手動で作成し,以下のコマンドをコマンドプロンプトで実行する.

junction C:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_create_more/Troll/4.5.0 C:\qt\2009.01

この後,Qtのインストールディレクトリで通常通り
configure -static
mingw32-make.exe

すれば良い.Qtの再コンパイルには相当な時間がかかる.僕の手元では7時間以上かかった.

コンパイルが終われば,後は通常通りQt CreatorからプロジェクトをCleanしてBuildすれば良い.
これでstatic linkされたバイナリが作成できる.

2009年4月14日火曜日

[Mac OS X]: Qt SDK 4.5とQt Creatorをインストールする

ひょんなことからQtを使ってアプリを書くことになったのでそれに関するメモなど.
まずは何よりインストールから.

まず,Mac OS XでQtを動作させる場合,X Code Toolsをインストールしておく必要がある.恐らく無くてもNativeなQtアプリを作るのには問題無いと思うのだが,標準ライブラリすらincludeできなかったりするので入れておいた方が良い.

X Code ToolsはMacを買ったときに付いてくるInstall Discか,ADC(Apple Developer Connection)に無料会員登録してダウンロードすることで入手することができる.
ただ,ADCからダウンロードするとDVDの1GBくらいあるDMGイメージをダウンロードすることになるので,回線が細い場合はおとなしくインストールディスクから入れた方が無難だと思う.

X Code Toolsのインストールが終われば,Qt公式サイトのダウンロードページからSDK(Standard Development Kit)をダウンロードする.
この時,よく見ると「Commercial Downloads」と「LGPL / Free Downloads」からライセンスを選択してダウンロードするのに気をつける.通常はLGPL版のSDKで良いだろう.



後は普通にダウンロードしてきたイメージをインストールすれば良い.

次に,Qt開発環境であるQt Creatorをインストールする.

Qt CreatorはQt開発に特化した統合開発環境で,Javaで言えばEclipse,Windows開発で言えばVisual Studioに相当する.
実は,最初はEclipse/CDTというEclipseのC++開発にQt Eclipse Integrationを入れて使おうと思ったのだが,なんとMac OS XだけPluginが提供されていない.
というわけで,仕方ないのでQt Creatorを使うことにした.

Qt Creatorは先ほどのダウンロードページ左下に「Qt Creator IDE」という項目があるので,そこからダウンロード/インストールできる.
Qt Creatorを起動すると,最近のIDEらしくWelcome画面が表示される.



試しにHelloWorldを書いてみる.
FileメニューからNewを選択し「Qt Console Application」を選択.適当な名前でプロジェクトを作成して後はデフォルトのまま次へボタンを押していく.
すると,Editモードに切り替わるので,main.cppの内容を以下のように編集する.

#include <QtCore/QCoreApplication>
#include <QDebug>

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << "Hello, World.\n";
return a.exec();
}


qDebug()はC++標準関数で言うcoutの代替として使えるQt関数である.
あとはQt Creator左下にある再生ボタンを押すか,Buildメニューから「Run」を実行すれば,以下のような形でHelloWorldが表示される.



とりあえず今日はここまで.