2013年7月22日月曜日

Qt 5.1 on Mac OS X Mountain Lion

GUIアプリを作ることになりまして、久しぶりに Qt を使おうかなと思ったのでした。
調べたら Qt 5.1 がリリースされていましたので Mountain Lion への入れ方などメモします。

インストール

既に Homebrew で Qt 4.8.4 を入れていたので干渉を避けるため、ソースからビルドすることにしました。
Qt Project から qt-everywhere-opensource-src-5.1.0.tar.gz をダウンロードしビルドします。
ビルド方法は Installation | QtDoc 5.1 が参考になります。

$ tar xzvf qt-everywhere-opensource-src-5.1.0.tar.gz
$ cd qt-everywhere-opensource-src-5.1.0
$ ./configure
$ make
$ sudo make -j1 install

途中でライセンスの選択を聞かれたので LPGL 版を選択しました。最後に PATH の調整をして終わりです。~/.bashrc に次を書き加えればいいでしょう。

export PATH=/usr/local/Qt-5.1.0/bin:$PATH

最後に希望のバージョンが入っていることを確認します。

$ qmake -v

QMake version 3.0
Using Qt version 5.1.0 in /usr/local/Qt-5.1.0/lib

Hello, World

Qt で画像をフルスクリーン表示する を参考にテストプログラムを作りました。

-- main.cpp --
#include <QApplication>
#include <QPixmap>
#include <QLabel>

int main(int argc, char **argv)
{
    QApplication app(argc, argv);
    QPixmap pixmap("/path/to/picture.jpg");
    QLabel screen;
    screen.setPixmap(pixmap);
    screen.show();

    return app.exec();
}
-- main.cpp --

ソースコードを準備したらプロジェクトファイルを生成します。そのプロジェクトのビルドに必要なライブラリや追加のインクルードパス、使用する Qt のモジュールなどを記述するためのファイルです。

$ qmake -project

Qt 5.1 から、どうやら GUI アプリを作る(QApplication クラスなどを使う)にはプロジェクトファイルの修正が必要なようです。生成されたプロジェクトファイルに次の1行を書き加えます。
この修正をしないとヘッダファイルが見つからないと言われたり、なんとか解決しても Mac: Undefined symbols for architecture x86_64: “QApplication::palette()”, referenced from: という感じのエラーが出てリンクできません。

QT += widgets

そうしたら Makefile を生成してビルドします。

$ qmake
$ make

アプリの起動は .app ファイルを起動しましょう。

$ open hoge.app

指定した画像が表示されたら成功です。

0 件のコメント:

コメントを投稿