2017年04月 / 03月≪ 123456789101112131415161718192021222324252627282930≫05月

2008.05.23 (Fri)

VisualStudioでQtプログラミング

QtはLINUX(X Window System)上のGUIツールキットの一つとして有名だが、WindowsやMacOSなどで動作させることも可能である。

今回はWindows上でQtプログラムを組むため、Visual Studioでコンパイル・実行できるようにしてみる。
そして、VisualStudioをつかって、Zaurus上で動く簡単なゲームでも作ろうかと思っている。

参考Webページ:Windows OS上のVisual StudioでQtを使う




・環境整備

Qtが使える環境を整える。
参考サイトを見ると、Qt開発元のTrolltech社のWebサイトから次のファイルを拾ってくるように書いてある。

* qt-win-opensource-src-4.x.x.zip
ソースパッケージ。x.xにはマイナーバージョン番号以下が入る。
* qt-win-opensource-4.x.x-mingw.exe
MinGWとプレビルドされたライブラリを含むインストーラ。

下のは入れてみたけど、なんかよくわからんが動かなかったので、上のを使って環境を整える。


トローテックの公式HPの Qt/Windows Open Source Edition から qt-win-opensource-src-4.x.x.zip となっている方を拾ってきて解凍し、「qt-win-opensource-src-4.x.x」というフォルダが出てくるはず。
これを適当なフォルダに置いてくる。
私は「C:」の下に置いてきました。


次に環境パスを設定する。
まず、QTを展開したディレクトリ下のbinを環境変数に追加するため、次のようにコマンドを打つ。
コマンドプロンプトを起動し、解凍したフォルダへ移動(この場合はC:\qt-win-opensource-src-4.x.x)、コマンドを入力する。
コマンドプロンプトで入力するコマンドはすべて赤で表示しておきます。

   C:\qt-win-opensource-src-4.x.x> PATH=%PATH%;C:\qt-win-opensource-src-4.x.x\bin

と入力する。
これで環境パスが追加されたはず。


Visual Studio 2005のビルド設定を行うために、環境変数QMAKESPECを指定。

   C:\qt-win-opensource-src-4.x.x> set QMAKESPEC=win32-msvc2005

と入力すればOK。


続いて、Qtのビルド。

   C:\qt-win-opensource-src-4.x.x> configure -debug-and-release -D _CRT_SECURE_NO_WARNINGS
   C:\qt-win-opensource-src-4.x.x> qmake

configure コマンドを実行すると、なんか聞かれると思うけど(「規約に同意しますか?」みたいな)、とりあえず「y」と入力した。
configure も qmake も処理が終わるまでかなり時間がかかった。


一応、これでコマンドプロンプト上でコンパイルと実行ができるようになったはず。
試しに実行してみる。




・コマンドプロンプト上でQtをビルド・実行

まず、「C:\qt-win-opensource-src-4.x.x」に「Hello」というフォルダを作成する。
次に、「hello.cpp」というファイルをHelloフォルダ内に作成。
次のようなプログラムを中に書く。

#include <QApplication>
#include <QPushButton>

int main(int argc, char* argv[])
{
QApplication app(argc, argv);

QPushButton hello("Hello world!");
hello.resize(100, 30);

hello.show();
return app.exec();
}


保存したら、コマンドプロンプトでHelloフォルダへ移動し、次のコマンドを順に実行。

   C:\qt-win-opensource-src-4.x.x> qmake -project
   C:\qt-win-opensource-src-4.x.x> qmake Hello.pro
   C:\qt-win-opensource-src-4.x.x> nmake

これでビルド(コンパイル)終了。
次は実行を行う。
正常にビルドされていれば、debugというフォルダができているはず。
なので、そこへ移動し、次のコマンド実行。

   C:\qt-win-opensource-src-4.x.x> Hello.exe

実行すると、こんな感じのウィンドウが表示されるはず。

Qt Hello World





・Visual Studio でビルド・実行

今度は Visual Studio でQtを使えるようにする。
次のコマンドを実行する。

   C:\qt-win-opensource-src-4.x.x> qmake -project -t vcapp

その後、

   C:\qt-win-opensource-src-4.x.x> qmake Hello.pro

と入力。
これで、 Hello.vcproj ができたはず。
だが、Hello.vcproj を普通に Visual Studio で読み込んでも実行できないはず。
そこで、次のコマンドで Visual Studio を起動し、Hello.vcproj を開く。

   C:\qt-win-opensource-src-4.x.x> devenv /useenv

VSを起動して Hello.vcproj を開いたら、ビルドして実行してみる。
再び、Qt でウィンドウを表示することができたはず。

Qt Hello World




どうやら、いちいち devenv /useenv で Visual Studio を起動しないといけないみたい。
めんどくさそう。
やっぱ、LINUX上でいろいろやった方が楽そうだ。





エラーメモ

>>C:\qt-win-opensource-src-4.4.0\Hello>qmake
>>'qmake' は、内部コマンドまたは外部コマンド、
>>操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と表示された。
これは、パスがちゃんと通っていないことが原因である。
 set PATH=%PATH%;C:\qt-win-opensource-src-4.x.x\bin
パスを見直そう!

>>C:\qt-win-opensource-src-4.4.0\Hello>qmake
>>WARNING: Unable to generate output for: C:/qt-win-opensource-src-4.4.0/Hello//Makefile.Debug [TEMPLATE -vcapp]
>>WARNING: Unable to generate output for: C:/qt-win-opensource-src-4.4.0/Hello//Makefile.Release [TEMPLATE -vcapp]
と表示された。
Visual Studio 用のパスが通っていないのが原因ぽい
 set QMAKESPEC=win32-msvc2005
を実行したら警告が無くなった。


テーマ : プログラミング ジャンル : コンピュータ

01:36  |  プログラミング系  |  TB(0)  |  CM(2)  |  EDIT  |  Top↑

*Comment

■Re: < > について

> この記事のおかげで Qt をセットアップできました。
> ありがとうございます。
>
> ところで、この記事について指摘させていただきたいことがあります。
> 文字列中の < や > が直接入力されているため、表示上の問題が起こっています。
> それが顕著に現れているのが hello.cpp の include 文です。
> QApplication と QPushButton を include しているようですが、これが Web ブラウザの Firefox には HTML タグであると認識されているようです。
> そのため、ページ上では <QApplication> と <QPushButton> が表示されていません。
>
> お手数ですが、 < を < に、 > を > に書き換えていただければ幸いです。

最近は少し放置気味で、返信遅れてすみません。

ご指摘&修正方法の説明、ありがとうございます。
大なりや小なりの記号について、修正しておきました。
ソースをコピペしたものの、ちゃんと確認してなかったので全く気付きませんでした。
となると、他にもありそうですね・・・。
もうじき時間が空くのでその時に確認してみます。

また気付いたことや思ったことがあれば、気軽に書き込んでください。
凄く助かりました、ありがとうございました。
Gasser |  2010.09.05(日) 11:34 |  URL |  【コメント編集】

■< > について

この記事のおかげで Qt をセットアップできました。
ありがとうございます。

ところで、この記事について指摘させていただきたいことがあります。
文字列中の < や > が直接入力されているため、表示上の問題が起こっています。
それが顕著に現れているのが hello.cpp の include 文です。
QApplication と QPushButton を include しているようですが、これが Web ブラウザの Firefox には HTML タグであると認識されているようです。
そのため、ページ上では <QApplication> と <QPushButton> が表示されていません。

お手数ですが、 < を &lt; に、 > を &gt; に書き換えていただければ幸いです。
./a.out |  2010.08.26(木) 21:59 |  URL |  【コメント編集】

コメントを投稿する

URL
COMMENT
PASS  編集・削除するのに必要
SECRET  管理者だけにコメントを表示  (非公開コメント投稿可能)
 

▲PageTop

*Trackback

この記事のトラックバックURL

→http://gasser.blog114.fc2.com/tb.php/186-56b67284

この記事にトラックバックする(FC2ブログユーザー)

この記事へのトラックバック

▲PageTop

 | BLOGTOP |