VC++ 2008 Expressを使ってQtの環境設定とサンプルコンパイル
VC++で"Hello world"画面を作ってみよう
1
2
3
4
5
6
7
8
9
10
11
12
| #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();
}
|
上記のソースコード(sample.cpp)をコマンドラインからコンパイルしてみましょう。
- VC++ 2008 Expressのスタートアップメニューの中の"Visula Studio 2008 コマンドプロンプト"を開きます
- コマンドプロンプトから、サンプルソースのあるディレクトリ( 例) c:\temp とします )へカレントディレクトリを移動します
1
2
| C:\Program Files\Microsoft Visual Studio 9.0\VC> cd C:\temp
C:\temp>
|
- コマンドプロンプトから、qmakeを実行して、VC用のプロジェクトファイルを作成し、コンパイルを実施します
1
2
3
4
5
6
7
| C:\temp> qmake -project
C:\temp> qmake temp.pro
C:\temp> nmake
:
: -- コンパイル実施
:
C:\temp>
|
1行目: |
カレントディレクトリ配下のソースコードを自動検索し、"カレントディレクトリ名.pro"の名前でQt用のプロジェクトファイルを作成します。
|
2行目: |
debug,releaseディレクトリを作成します。
debug,release用のMakeFileを作成します。
-- Makefile.Debug,Makefile.Release
デフォルトのMakeFileを作成します。
-- Makefile
|
3行目: |
ビルド実施
-- デフォルトではdebugのビルドが実施されます。
release版をビルドしたい場合は、
nmake release
とします。
debug/release版共にビルドしたい場合は、
nmake all
とします。
|
- 動作させてみます
作成したsample.exeを実行してみてください。以下の画面が表示されたらOKです。
上記のソースコード(sample.cpp)をIDEを使ってコンパイルしてみましょう。
- VC++ 2008 Expressを立ち上げます
- IDEの環境設定を行います
[ツール]->[オプション]->[プロジェクトおよびソリューション]->[VC++ ディレクトリ]-> ディレクトリを表示するプロジェクト:[インクルード ファイル]で追加
- %Qtインストールディレクトリ%\Qt\Include (例:C:\Qt\Qt\include)
[ツール]->[オプション]->[プロジェクトおよびソリューション]->[VC++ ディレクトリ]-> ディレクトリを表示するプロジェクト:[ライブラリ ファイル]で追加
- %Qtインストールディレクトリ%\Qt\lib (例:C:\Qt\Qt\lib)
- 空のMakeFileプロジェクト(Sample)を作成します
メニューの [ファイル] - [新規作成] - [プロジェクト] をクリックします。
画面左:全般、画面右:メイクファイルプロジェクト を選択します。
- プロジェクトのnmakeの仕方を変更します
[プロジェクト]->[プロパティ]->[構成プロパティ]->[Nmake] を開きます。
以下のコマンドラインに記述します。
qmake -project
qmake
nmake debug
入力できたらOKをクリックします。
※最後の行は、release版では、"nmake release"を指定します。
1行目を"qmake -project -t vcapp -o hello.pro"のようにプロジェクト名(hello.pro)を指定することもできます。
このように指定した場合、実行ファイル名もhello.exeのように変化します。
ここでは、コマンドラインと同じようにするために、省略して説明を続けています。
参考:
クリーンコマンドラインは、"nmake debug-clean"のようになります。
$(ConfigurationName)\vcsample.exe
のようにデフォルトでは、実行ファイル名のみ指定されていますが、"$(ConfigurationName)\"を前につけてあげます。
また、実行ファイルは、"直下のディレクトリ名.exe"となるので注意します。
※Qtの吐き出すMakefileにあわせてあげます。
※同じ要領で、releaseのビルド方法も指定します。
- 先で用いたsample.cppをコピーし、プロジェクトに追加します
-- sample.cppファイルは、このプロジェクトディレクトリの直下になければなりません。
- ビルドを実施してみてください
--- sample.exeが作成されたらOKです。
- 動作させてみます
作成したsample.exeを実行してみてください。以下の画面が表示されたらOKです。
IDEを使って実行する場合、必ず、以下の画面が表示されます。
これは、無視しても良いでしょう。
上記の画面は、
[ツール]->[オプション]->[プロジェクトおよびソリューション]->[ビルド/実行]->
実行時に、プロジェクトが古い形式のとき:
のいずれかを指定すると、出力されなくなります。
元に戻したい場合は、
"ビルド時に確認する"を設定すれば、元に戻ります。
IDEを使う一番のメリットはデバッグだと思います。
デバッグ版では、当然、デバッグ(ブレイク)もできます。
以下のようにブレイクして、詳細情報をのぞくこともできます。
IDEの設定で、行っているようにビルドするたびに毎回、qmakeを実行する必要はありません。
プロジェクトに変更があった場合に、実行すればよいのですが、よく忘れてしまいますので、ビルドのたびに実行するようにしています。
また、細かい検証を行っていませんが、ディレクトリの配下にソースコードがあれば問題ないのですが、それが異なる場合に問題となるでしょう。
更に、個別のlibパスなどを追加設定したいときなど、色々と問題はあります。
関連記事:
qmake でVC++ 2008 Expressのプロジェクトファイルを作成する
環境を作るのに、筆者は、1日がかりでした。
この記事をご覧になっている方々が、少しでも、時間の短縮になれば幸いです。
実際に、どれくらい使えそうか・・・は、まだまだ、使ってみないとなんともいえませんが、ソースコードの量からすると、Qtは、結構、少なくできるような感じを受けました。
参考までに、release版の最適化オプションは、O2(実行速度)を使っています。
上記のサンプル実行ファイルサイズ:8K
※動作させるうためには、MFC同様、QtのDLLを一緒に配布しないといけません。
Qt:QTGUI4.DLL(7MB),QTCORE4.DLL(2MB),msvcrt??.dll(0.3MB)
MFC:mfcxx.dll(1MB),msvcpxx.dll(0.5MB),msvcrxx.dll(0.4MB),msvcrt??.dll(0.3MB)
配布するには、少し大きすぎない?
もっと、Qt関連について詳しく知りたい方は、以下の本なども良いと思います。
Qtに関する日本語の本が少ないですね。「入門書」は、さすがに、このページを読まれるくらいの方は不要だと思います。
やっぱり、本+ネット+試してみる!!の3本柱でやっていく以外にないように思います。
2011年04月23日 @ 07:41:22
こんにちは
QT Creatorを使用して間もないのでこのサイトはとても参考にさせていただいております。
現在、dllを外部参照させようと文献をあさったり検索したりしているのですが、なかなか情報が少なく上手くいっておりません。お手数ですがお教えいただければ幸いです。
よろしくお願い致します。
2011年04月26日 @ 23:46:32
基本的なクラスなら QLibrary で Win32 のLoadLibrary と同じことができた?と思いますよ。
(プラグインのような)動的リンクをするができたと思います。
DLL側は、QT Creatorで C++ライブラリ作成 – 共有 でプロジェクトを作成するとOK?だったと思います。