今更だが,去年にQtを使った授業資料を作成したことを思い出した.せっかくなのでここでURLを晒してみる.
オブジェクト指向プログラミング
当時1.0系が出た直後のQt Creatorを使ってやってみたのだが,かなり難航したのを覚えている.
僕は教育体験という形で授業資料を作ったのだが,Javaとは違い人によって動いたり動かなかったりしたのが大変だったなあ.
# なぜかARMの開発環境をインストールしている学生がいて,GCCがconflictしてたりなんてこともあった
そんなわけで,もう1年も経って情報は古いけど,見てみたい人はどうぞ.サポートはしません.
内容としては,初めてオブジェクト指向プログラミングをやる人のための授業なので,詳しい人は見る価値はあまり無いです.
2010年8月6日金曜日
2009年4月21日火曜日
[Qt][Windows]: Qt CreatorでBuildに失敗する
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の内容を以下のように編集する.
qDebug()はC++標準関数で言うcoutの代替として使えるQt関数である.
あとはQt Creator左下にある再生ボタンを押すか,Buildメニューから「Run」を実行すれば,以下のような形でHelloWorldが表示される.

とりあえず今日はここまで.
まずは何よりインストールから.
まず,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が表示される.

とりあえず今日はここまで.
登録:
投稿 (Atom)