VC++2010Expressで Boostライブラリを使えるようにする方法 と
VC++2010Expressで Qt(キュート)を使えるようにする方法を書き留めます
内容はQtとBoostを参考に、ヴァージョンアップで変わったとこがあるので一応書いておきます。
Boost ! ! ! !
http://www4415ui.sakura.ne.jp/blog/?p=409Boostのインストールはもっと簡単になってます。上記サイトを見ればすぐわかります。
Boost!は公式からZipでダウンロード。
C:/Program Files/boost/boost_1_47_0に入れた。
VC++2010用のライブラリファイルを作ります。
スタートメニューに「Visual Studio 2010コマンドプロンプト」があるので起動します。
Zipで落とすと普通にbjamが含まれてるはずなので、「bjam.exe --toolset=msvc-10.0 --prefix=c:/tmp --build-type=complete link=static release install」と打った(--toolsetと--prefixは少し変えた)。
リリース用ライブラリだけだったので+「variant=debug,release stage」を追加してみた。
すると c:/tmp にフォルダが2つ?くらい出来たので「C:/Program Files/boost/boost_1_47_0」にコピー(移動)した。 (後半はこっちが役に立った)
VC++2010 の、「VC++ディレクトリ」を変更しますが、ソリューションごとに設定するので最後に書きます。
Qt ! ! ! !
QtはQtSDKとは違います。公式より「Qt 4.7.4 for Windows(VS 2008, 228 MB)」をDL、インストールしました。
ちょっと迷いますが標準の「C:/Qt4.7.4」へインストールしました。 ライブラリを使えるようにするため、コンパイルが要ります。
先ず環境コンパイルだそうです。
スタートメニューに「Visual Studio 2010コマンドプロンプト」があるので起動します。
C:/Qt4.7.4に移動し、
set QMAKESPEC=win32-msvc2010 configure -debug-and-release -D _CRT_SECURE_NO_WARNINGS
と打ちます。
何か聞かれるので
o
と打ちます(OpenSource版の意味)
何か聞かれるので
y
と打ちます(許諾しますの意味)。
次に、ライブラリコンパイルだそうです。 同じ場所で、 nmake と打ちます。時間かかります。 それが終ったら環境変数を設定します。
QMAKESPEC : win32-msvc2010 PATH : %path%;C:/Qt4.7.4/bin;C:/Qt4.7.4/lib でサンプルなどが動くようになります。
Qt及びBoostを使うプロジェクトの作り方
先ずVC++2010でQtのプロジェクトを作ります。新規プロジェクトで全般よりメイクプロジェクトを選択。
ちゃんとした設定は後でやるのでビルドコマンドに「a」とか「b」とか入れます(空欄だと変になる)。
そのプロジェクトのプロパティを開き、「構成プロパティ」の(Debug用の)「ビルドコマンドライン」に qmake -project qmake nmake debug と3行入れます。
リリース用ビルド設定は最後のdebugをreleaseに変えます(nmakeだけだとビルドしません)。
出力にはファイル名の前に「$(ConfigurationName)」を加えます(環境があってないと思うので調節が要ります)。
クリーンは「nmake debug-clean」と入れます。 「VC++ディレクトリ」の設定をします。
ソリューションのプロパティの何処かに「VC++ディレクトリ」があります。 「ディレクトリを表示するプロジェクト」から「インクルードファイル」を選び、追加作成で「C:/Qt/4.7.4/include」と、「C:/Program Files/boost/boost_1_47_0」を加えます。 「ディレクトリを表示するプロジェクト」から「ライブラリファイル」を選び、追加作成で「C:/Qt/4.7.4/lib」と、「C:Program Files/boost/boost_1_47_0lib」を加えます。
これでQtとBoostを使ったプログラムのコンパイル、実行が出来るようになります。
-- Main.cpp --
#include <iostream> #include <string> #include <QtGui/QApplication> #include <QtGui/QMainWindow> #include <boost/shared_ptr.hpp> typedef boost::shared_ptr<QString> QStringPtr; int main(int argc, char *argv[]) { QStringPtr str ; str.reset( new QString( "hello world")); QApplication application( argc, argv); QMainWindow mainWindow; mainWindow.setWindowTitle( *str.get() ); mainWindow.resize( 300, 200); mainWindow.show(); return application.exec(); }