それでは Qt で開発を行う環境を整えましょう。ここでは Qt SDK を Linux PC にインストールする方法を紹介します。
Windows の方は 第2回 Windows 編 へ、 Mac の方は 第3回 Mac 編 をご覧ください。
Qt SDK は Kubuntu 8.04 及び 8.10 にて動作確認しています。ここでは Ubuntu 8.04 にインストールしていますが、他の Linux でも同様にインストールできると思います。
Qt SDK for Linux/X11 とは
Qt のライブラリ(32bit/64bit 用)、Qt の開発環境である Qt Creator を1つのパッケージにして、これをインストールするだけですぐに Qt での開発を始められるようにした開発キットです。ただし、Qt SDK for Linux/X11 にはコンパイラは含まれていませんので、Linux の開発環境を別途インストールする必要があります。その方法についてはこの後のインストール手順の中で説明します。
今回は 32bit 用 SDK をインストールします。64bit 用のバイナリを利用したい方は 32bit 用ではなく、 64bit 用のバイナリを利用してください。
Qt SDK for Linux/X11 のダウンロード
ダウンロード — Qt – A cross-platform application and UI framework より
Qt SDK for Linux/X11 をダウンロードしてください。
ここでは現時点での最新版 2010.02 (qt-sdk-linux-x86-opensource-2010.02.bin) を使用したインストール手順を示します。
Qt SDK for Linux/X11 のインストール
ダウンロードした qt-sdk-linux-x86-opensource-2010.02.bin を以下のように実行してください。
% chmod +x qt-sdk-linux-x86-opensource-2010.02.bin
% ./qt-sdk-linux-opensource-2010.02.bin
Qt SDK セットアップウィザードへようこそ
「Next >」クリックし、次へ進んでください。
ライセンスの同意
Qt SDK をインストールする前の、ライセンスの確認画面です。
「GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999」ライセンスをよく読み、このライセンスを受け入れることに同意する場合には、「I accept the agreement」を選択し、「Next >」をクリックしてください。
インストール先の選択
お好きな場所を選択してください。ただし、日本語やスペースを含むようなフォルダは指定しないでください。
コンポーネントの選択
インストールするコンポーネントの選択です。今回はこのままで「Next >」をクリックしてください。
依存関係について
Qt Creator で Qt アプリケーションをビルドするには C++ コンパイラ以外に、いくつかの開発用のライブラリが必要です。それらをインストールする為に、Debian と Ubuntu ではターミナルから以下のコマンドを使用してください。
sudo apt-get install libglib2.0-dev libSM-dev libxrender-dev libfontconfig1-dev libxext-dev
もし、QtOpenGL を使用するのであれば、 OpenGL 関係の開発環境も必要です。それらは以下のコマンドでインストールできます。
sudo apt-get install libgl-dev libglu-dev
インストール準備の完了
インストールに必要なセットアップが完了しました。「Next >」をクリックしてインストールを開始してください。
インストール中
しばらくお待ちください。
Qt SDK セットアップウィザードの完了
以上で Qt SDK 2010.02.1 の Linux へのインストールが終了です。「Finish」をクリックすると Qt Creator が起動します。
Qt Creator
インストーラーから直接 Qt Creator を起動すると英語版になるようなので、一度終了してデスクトップに作成された Qt Creator のショートカットから起動しなおします。
つづく
次回からは Qt Creator を使用し、簡単な Qt のアプリケーションの作成を体験してみましょう。
Related posts:













10 comments (read them below or add one)
異なるバージョン(4.6.2 と 4.7.0とか)を混在させる方法や、とくに kubuntu (KDE)使ってる場合の Qt だけのアップグレード方法とかがよく分からないので、そのあたりの説明をして頂けると助かります。よろしくお願いします。
@Kimitake ディストリビューションから提供される Qt のバージョンについては各ディストリビューション次第ですが、1つのバージョンだけに対応している場合が多いと思います。複数のバージョンを使用するのであれば Qt をソースコードからビルドし、インストール先を分けておくのが一番簡単です。この場合、どのバージョンの Qt に対してアプリケーションをコンパイルをするかは、どのバージョンの Qt の qmake を使用したかによって決まります。
鈴木さん、
例えば自分の場合、ソースからビルドして /usr/local/Trolltech 以下に Qt-4.5.3 や Qt-4.6.2 などが あります。これとは別に元々 4.4.3 が入った状態になってます(KDEが4.4.3 を使ってます)。
自作アプリは 4.6.2 用としてビルドしたいので Qt-4.6.2 以下にある qmake を使ってますが、このままだとライブラリが 4.4.3 の方を検索してしまうと思います。なので今は update-alternatives で qmake やライブラリパスなどを切り替えてますが、そうすると今度は KDE がちゃんと起動しなくなってしまいます。
それでも普段は windows からリモートでアクセスしてるので、それほど困ったことにはなってませんが、kubuntu 上で開発されてる方などはどうやって切り替えているのかなぁと思った次第です。でもよく考えたらライブラリは LD_LIBRARY_PATHで切り替えればよさそうですね…なんで update-alternatives なんか使ったんだろう>自分…
今までQt 4.5.2を、Linux 2.4 (Red Hat Linux 9 Kernel 2.4.20)上で使用していましたが、今回、このパッケージを導入しようとしたところエラーになってしまいました。(libstdc++やfont configをアップデートしたところ、Compile/Linkまで通りましたが、結局g_object_set_valist: object class `GtkMenuItem’ has no property named `label’というエラーが出て、HelloWorldの起動ができませんでした。)
そこで、今まで通りSourceから configure->makeを行ってインストールしようとしたのですが、kernel/qmetaobject.cpp: In static member function `static QByteArray 、 QMetaObject::normalizedType(const char*)’:といったエラーが出て途中で止ってしまいます。(ちなみに2.6のマシンなら通りました。)
Linux 2.4には対応していないのか、それとも何らかのアップデートで使用可能なのか、そのあたりをお聞きしたく思っています。よろしくお願い致します。
@Kimitake さん、Qt ソースパッケージからビルド & インストールした場合、そのインストール先にある qmake (ex. /usr/local/Trolltech/Qt-4.6.2/bin/qmake )を使用してアプリケーションをビルドすると、ライブラリとのリンク時に “-Wal,-rpath” オプションを使って使用するライブラリの位置を指定しています。
そのため、利用したいバージョンの Qt のインストール先にある qmake を使用すれば、作成したバイナリはそのバージョンの Qt のライブラリとリンクされます。ですので、通常は qmake の切り替え以外に特別にバージョンを管理するための手順は必要ありません。
お使いの環境でアプリケーションビルド時のログや ldd コマンドでバイナリがどのパスにあるライブラリにリンクされているかを確認してみてください。
@yukiho さん、RedHat 9 の環境が手元には既にないため推測となりますが、Linux のカーネルのバージョンよりも gcc 等のビルド環境のバージョンの可能性の方が高いと思います。RedHat 9 そのままの環境だと gcc/g++ のバージョンが 3.2 になると思いますが、Qt 4.6 でサポートする gcc のバージョンは 3.3/3.4 以上となります(3.3では利用できないモジュールもあるため、3.4以降を推奨します)。
“Platform Notes – X11″ の “GCC on Solaris” の所ですが、gcc 3.2 でビルドに失敗すると書いてあることからも gcc のバージョンの問題ではないかと推測します。
http://qt.nokia.com/doc/4.6/platform-notes-x11.html
http://qt.nokia.com/doc/4.6/compiler-notes.html
朝木さん、
単にインストール先の qmake を実行しても、切り替えに必要なリンクオプションが付かないようですが普通は付くのでしょうか?そのままビルドしても 4.6.0 の qmake を使ってても 4.4.3 (/usr/lib)のライブラリを探しにいってます。
そこで .pro ファイルに
LIBS += -Xlinker -rpath -Xlinker /usr/local/Trolltech/Qt-4.6.0/lib
を追加して確認してみました。この場合 4.6.0 のライブラリを探しにいってるようです。
あとはなんとかこのオプションが pro ファイル生成時に自動で付くと嬉しのですが…
今回は
/usr/local/Trolltech/Qt-4.6.0/bin/qmake -project LIBS=”LIBS += -Xlinker -rpath -Xlinker /
usr/local/Trolltech/Qt-4.6.0/lib”
で pro ファイル生成後
/usr/local/Trolltech/Qt-4.6.0/bin/qmake
で Makefile を作って試しました。
何度もすみません。
mkspecs/common/g++.conf に QMAKE_RPATH なるものがあるんですが、ここには -Wl,-rpath, までしか書かれてませんでした(4.6.0で確認)。しかも Makefile には反映されない。
なので同じファイルの少し上の QMAKE_LFLAGS のところに
-Wl,-rpath $$[QT_INSTALL_LIBS]
を追加してみたところ、インストール先の qmake を実行することで切り替えることができるようになりました。
ほんと度々すみません。
kubuntu 上で qt のビルド時の configure オプションに、maemo パッケージをビルドするときに使ってたオプションを使い回していて、そこに -no-rpath というのを指定してました。なのでうまく切り替えができなかったようです。4.6.2 をまだインストールしてなかったので、このオプションとってビルドしてみたいと思います。
お騒がせして申し訳ないです。
朝木さん
早速の返信ありがとうございます。リンク先の情報がとても役に立ちそうです。
ありがとうございました。