The blog is moving to a new host on Monday 2nd of September. The comments are disabled during the migration.

Qt をはじめよう! 第4回: Qt SDK のインストール 〜 Linux 編

Published Monday March 15th, 2010
12 Comments on Qt をはじめよう! 第4回: Qt SDK のインストール 〜 Linux 編
Posted in Qt をはじめよう! | Tags: , , , ,

それでは 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 のアプリケーションの作成を体験してみましょう。

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in Qt をはじめよう! | Tags: , , , ,

12 comments

Kimitake says:

異なるバージョン(4.6.2 と 4.7.0とか)を混在させる方法や、とくに kubuntu (KDE)使ってる場合の Qt だけのアップグレード方法とかがよく分からないので、そのあたりの説明をして頂けると助かります。よろしくお願いします。

鈴木 佑 says:

@Kimitake ディストリビューションから提供される Qt のバージョンについては各ディストリビューション次第ですが、1つのバージョンだけに対応している場合が多いと思います。複数のバージョンを使用するのであれば Qt をソースコードからビルドし、インストール先を分けておくのが一番簡単です。この場合、どのバージョンの Qt に対してアプリケーションをコンパイルをするかは、どのバージョンの Qt の qmake を使用したかによって決まります。

Kimitake says:

鈴木さん、
例えば自分の場合、ソースからビルドして /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 なんか使ったんだろう>自分…

yukiho says:

今まで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には対応していないのか、それとも何らかのアップデートで使用可能なのか、そのあたりをお聞きしたく思っています。よろしくお願い致します。

朝木卓見 says:

@Kimitake さん、Qt ソースパッケージからビルド & インストールした場合、そのインストール先にある qmake (ex. /usr/local/Trolltech/Qt-4.6.2/bin/qmake )を使用してアプリケーションをビルドすると、ライブラリとのリンク時に “-Wal,-rpath” オプションを使って使用するライブラリの位置を指定しています。
そのため、利用したいバージョンの Qt のインストール先にある qmake を使用すれば、作成したバイナリはそのバージョンの Qt のライブラリとリンクされます。ですので、通常は qmake の切り替え以外に特別にバージョンを管理するための手順は必要ありません。
お使いの環境でアプリケーションビルド時のログや ldd コマンドでバイナリがどのパスにあるライブラリにリンクされているかを確認してみてください。

朝木卓見 says:

@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

Kimitake says:

朝木さん、
単にインストール先の 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 を作って試しました。

Kimitake says:

何度もすみません。
mkspecs/common/g++.conf に QMAKE_RPATH なるものがあるんですが、ここには -Wl,-rpath, までしか書かれてませんでした(4.6.0で確認)。しかも Makefile には反映されない。
なので同じファイルの少し上の QMAKE_LFLAGS のところに
-Wl,-rpath $$[QT_INSTALL_LIBS]
を追加してみたところ、インストール先の qmake を実行することで切り替えることができるようになりました。

Kimitake says:

ほんと度々すみません。
kubuntu 上で qt のビルド時の configure オプションに、maemo パッケージをビルドするときに使ってたオプションを使い回していて、そこに -no-rpath というのを指定してました。なのでうまく切り替えができなかったようです。4.6.2 をまだインストールしてなかったので、このオプションとってビルドしてみたいと思います。
お騒がせして申し訳ないです。

yukiho says:

朝木さん
早速の返信ありがとうございます。リンク先の情報がとても役に立ちそうです。
ありがとうございました。

金田 淳 says:

お世話になります。
UbuntuへのQtSDKのインストールについて質問させて下さい。

まずこちらの環境は以下になります。
OS: Ubuntu 10.04LTS
Qt: Qt SDK 1.2.1 (QtSdk-offline-linux-x86-v1.2.1.run)
※Ubuntuは、正確にはホストOSをWindowsとするVirtualBoxでの仮想環境(ゲストOS)です。

①手順説明に出てくるQtSDKのインストーラは拡張子が.binですが、SDK1.2.1のLinux用インストーラの拡張子は.runになっています。インストール手順に違いはないという認識でよいでしょうか?

②手順説明の「インストール先の選択」でインストール先を「/opt/」直下に指定してしまったのですが、問題はありますでしょうか?インストールするならユーザディレクトリ以下のほうがよいでしょうか?

③QtOpenGLの開発用ライブラリをUbuntuにインストールするために「sudo apt-get install libgl-dev libglu-dev」コマンドを実行したのですが、その際に以下のようなメッセージが表示されました。候補が2つ提示されていますが、どちらをインストールすべきか指定はありますでしょうか?
> libgl-devは以下のパッケージで提供されている仮想パッケージです:
> libgl1-mesa-swx11-dev 7.7.1-1ubuntu3
> libgl1-mesa-dev 7.7.1-1ubuntu3
> インストールするパッケージを明示的に選択する必要があります。

④QtSDKのセットアップウィザードが最後まで完了し、その場でQtCreatorは起動したのですが、デスクトップにQtCreator起動用ショートカットは生成されていませんでした。(もちろんウィザードでショートカット生成オプションにチェックを付けました。)ショートカットを自力で作成するしかないのでしょうか?それともインストールが失敗しているのでしょうか?

⑤Nokiaサイトからインストーラをダウンロードしてインストールするのではなく、Ubuntuの「apt-get」コマンドでQtSDKを取得・インストールすることは可能でしょうか?

以上、質問が多くて恐縮ですが、宜しくお願い致します。

鈴木 佑 says:

金田さん、
1. 現在の拡張子は .run に変更されていますね。手順は同様です。
2. /opt/ でもパーミッション的に問題がなければ大丈夫です。
3. libgl1-mesa-dev 7.7.1-1ubuntu3 で問題ないと思います(未確認です)。
4. OS のメニューの「Development/開発」などのカテゴリには登録されていないでしょうか。
5. Ubuntu が提供する libqt4-dev や qtcreator などのパッケージでもほぼ同様の開発環境をインストールすることは可能だと思います。詳細は Ubuntu のコミュニティなどで聞いてみてはいかがでしょうか。

Commenting closed.

Qt をはじめよう! 第4回: Qt SDK のインストール 〜 Linux 編

Published Monday March 15th, 2010
Comments Off on Qt をはじめよう! 第4回: Qt SDK のインストール 〜 Linux 編
Posted in Qt をはじめよう! | Tags: , , , ,

それでは 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

(more…)

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in Qt をはじめよう! | Tags: , , , ,

0 comments

Kimitake says:

異なるバージョン(4.6.2 と 4.7.0とか)を混在させる方法や、とくに kubuntu (KDE)使ってる場合の Qt だけのアップグレード方法とかがよく分からないので、そのあたりの説明をして頂けると助かります。よろしくお願いします。

鈴木 佑 says:

@Kimitake ディストリビューションから提供される Qt のバージョンについては各ディストリビューション次第ですが、1つのバージョンだけに対応している場合が多いと思います。複数のバージョンを使用するのであれば Qt をソースコードからビルドし、インストール先を分けておくのが一番簡単です。この場合、どのバージョンの Qt に対してアプリケーションをコンパイルをするかは、どのバージョンの Qt の qmake を使用したかによって決まります。

Kimitake says:

鈴木さん、
例えば自分の場合、ソースからビルドして /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 なんか使ったんだろう>自分…

yukiho says:

今まで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には対応していないのか、それとも何らかのアップデートで使用可能なのか、そのあたりをお聞きしたく思っています。よろしくお願い致します。

朝木卓見 says:

@Kimitake さん、Qt ソースパッケージからビルド & インストールした場合、そのインストール先にある qmake (ex. /usr/local/Trolltech/Qt-4.6.2/bin/qmake )を使用してアプリケーションをビルドすると、ライブラリとのリンク時に “-Wal,-rpath” オプションを使って使用するライブラリの位置を指定しています。
そのため、利用したいバージョンの Qt のインストール先にある qmake を使用すれば、作成したバイナリはそのバージョンの Qt のライブラリとリンクされます。ですので、通常は qmake の切り替え以外に特別にバージョンを管理するための手順は必要ありません。
お使いの環境でアプリケーションビルド時のログや ldd コマンドでバイナリがどのパスにあるライブラリにリンクされているかを確認してみてください。

朝木卓見 says:

@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

Kimitake says:

朝木さん、
単にインストール先の 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 を作って試しました。

Kimitake says:

何度もすみません。
mkspecs/common/g++.conf に QMAKE_RPATH なるものがあるんですが、ここには -Wl,-rpath, までしか書かれてませんでした(4.6.0で確認)。しかも Makefile には反映されない。
なので同じファイルの少し上の QMAKE_LFLAGS のところに
-Wl,-rpath $$[QT_INSTALL_LIBS]
を追加してみたところ、インストール先の qmake を実行することで切り替えることができるようになりました。

Kimitake says:

ほんと度々すみません。
kubuntu 上で qt のビルド時の configure オプションに、maemo パッケージをビルドするときに使ってたオプションを使い回していて、そこに -no-rpath というのを指定してました。なのでうまく切り替えができなかったようです。4.6.2 をまだインストールしてなかったので、このオプションとってビルドしてみたいと思います。
お騒がせして申し訳ないです。

yukiho says:

朝木さん
早速の返信ありがとうございます。リンク先の情報がとても役に立ちそうです。
ありがとうございました。

金田 淳 says:

お世話になります。
UbuntuへのQtSDKのインストールについて質問させて下さい。

まずこちらの環境は以下になります。
OS: Ubuntu 10.04LTS
Qt: Qt SDK 1.2.1 (QtSdk-offline-linux-x86-v1.2.1.run)
※Ubuntuは、正確にはホストOSをWindowsとするVirtualBoxでの仮想環境(ゲストOS)です。

①手順説明に出てくるQtSDKのインストーラは拡張子が.binですが、SDK1.2.1のLinux用インストーラの拡張子は.runになっています。インストール手順に違いはないという認識でよいでしょうか?

②手順説明の「インストール先の選択」でインストール先を「/opt/」直下に指定してしまったのですが、問題はありますでしょうか?インストールするならユーザディレクトリ以下のほうがよいでしょうか?

③QtOpenGLの開発用ライブラリをUbuntuにインストールするために「sudo apt-get install libgl-dev libglu-dev」コマンドを実行したのですが、その際に以下のようなメッセージが表示されました。候補が2つ提示されていますが、どちらをインストールすべきか指定はありますでしょうか?
> libgl-devは以下のパッケージで提供されている仮想パッケージです:
> libgl1-mesa-swx11-dev 7.7.1-1ubuntu3
> libgl1-mesa-dev 7.7.1-1ubuntu3
> インストールするパッケージを明示的に選択する必要があります。

④QtSDKのセットアップウィザードが最後まで完了し、その場でQtCreatorは起動したのですが、デスクトップにQtCreator起動用ショートカットは生成されていませんでした。(もちろんウィザードでショートカット生成オプションにチェックを付けました。)ショートカットを自力で作成するしかないのでしょうか?それともインストールが失敗しているのでしょうか?

⑤Nokiaサイトからインストーラをダウンロードしてインストールするのではなく、Ubuntuの「apt-get」コマンドでQtSDKを取得・インストールすることは可能でしょうか?

以上、質問が多くて恐縮ですが、宜しくお願い致します。

鈴木 佑 says:

金田さん、
1. 現在の拡張子は .run に変更されていますね。手順は同様です。
2. /opt/ でもパーミッション的に問題がなければ大丈夫です。
3. libgl1-mesa-dev 7.7.1-1ubuntu3 で問題ないと思います(未確認です)。
4. OS のメニューの「Development/開発」などのカテゴリには登録されていないでしょうか。
5. Ubuntu が提供する libqt4-dev や qtcreator などのパッケージでもほぼ同様の開発環境をインストールすることは可能だと思います。詳細は Ubuntu のコミュニティなどで聞いてみてはいかがでしょうか。

Get started today with Qt Download now