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が表示される.



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

2009年4月10日金曜日

[書籍]: 反日マスコミの真実 2009を読んだ



ニコニコ動画のマスコミ批判関連で有名だったこの本を今更ながらに読んだ.
以下僕の印象など.

特集記事として「大マスコミが報じない田母神問題」「毎日新聞変態記事の衝撃」「報道されないニュース」といった記事が取り上げられており,紙面の4/5位は特集記事で埋まっている.
執筆者陣は非常に多彩で,各種専門家からブロガーまで,いろいろな人から記事を集めていることが面白い.
構成としては,2Pから4P位の記事が中心で,読みやすいと感じた.記事によって行間がかなり大きいものもあるのは愛嬌かな:-P

記事の内容はどうかというと,感情的になりすぎてちょっと一歩引いてしまうような記事が多かった.話題の中心は2ch系まとめブログなどを斜め読みしていれば大体どこかで読んだことのあるような内容がメインなのだが,それだけに記事の内容が被ってしまっていることも多く,特に田母神問題の記事についてはくどいと感じられることもあった.
ネットで行われたような議論の内容で終わってしまうような記事が多かったのは,正直レベルが低いなと思う.ただ,普段あまり本を読んでいなかったり,何も考えず流し読みするのであればいいのかも.

一方,それぞれの特集や連載の中で,ただのマスコミ批判に終わらず客観的に独自の意見を述べている記事もいくつかあり,それらはなかなか読み応えがあった.1200円はちょっと高いとは思ったが,こういった雑誌はあまり見ないので,仕方無いとは思う.
僕としてはこういった記事と前述の様な軽い(読みやすい)記事を分けて書いておいてくれると良かったなと思う.