CodeblocksでQtを簡単にビルドする方法

つくばチャレンジに参加してみて、ロボットのGUIがとても大切だということがわかりました。そこで、Qtの勉強を最近始めました。授業でも使っている統合開発環境CodeblocksでQtを作成したプログラムをビルドする方法を紹介します。OSはUbuntu 8.04です。

  • インクルードパスの設定
    • Qtをビルドするためにインクルードパスを追加します。ご自分の環境に合わせたパスに変更してください。この例では、ホームディレクトリにQtの開発環境をインストールしていますので次のように設定しています。
    • /home/ユーザ名/qtsdk-2009.03/qt/include
    • /home/ユーザ名/qtsdk-2009.03/qt/include/QtCore
    • /home/ユーザ名/qtsdk-2009.03/qt/include/QtGui
クリックすると拡大します。

クリックすると拡大します。

  • ライブラリパスの設定
    • Qtのライブラリパスも設定します。ご自分の環境に合わせたパスに変更してください。
    • この例では次のように設定しています。
    • /home/ユーザ名/qtsdk-2009.03/qt/lib/libQtCore.so
    • /home/ユーザ名/qtsdk-2009.03/qt/lib/libQtGui.so
クリックすると拡大します。

クリックすると拡大します。

  • qt-prebuildの設定
    • Qtのプロジェクトファイルからmakefileを作成するためにqmakeを実行する必要がありますが、codeblocksではqmakeを実行するメニューがないのでqt-prebuildを以下をダウンロード、コンパイルして、パスの通っている場所に置きます。
    • 以下のコマンドをターミナルで実行します。成功すると実行ファイルqt-prebuildが生成されます。ここではホームディレクトリの下にbinディレクトリを作成しそこにqt-prebuildを置いています。
      • wget http://webmail.appert44.org/~plegal/qt/qt-prebuild/qt-prebuild.cpp
      • wget http://webmail.appert44.org/~plegal/qt/qt-prebuild/qt-prebuild.pro
      • qmake
      • make
    • Codeblocksを設定します。Pre/post build stepsのPre-build stepsに以下を設定します。
      • ~/bn/qt-prebuild
クリックすると拡大します。

クリックすると拡大します。

  • ビルド prebuildの動作確認
    • ではビルドしましょう。Build logをqt-buildがQt関連のファイルを探してくれているのがわかります。
クリックすると拡大します。

クリックすると拡大します。

  • ビルド 失敗
    • ところが、undefined reference to vtable for という大量のエラーが出ます。Qtのプログラムをビルドするためにはmoc(Meta Object Compiler)でソースファイルを生成する必要があります。qmakeを使うと自動的にmocにより必要なファイルが自動生成されます。エラーの原因はこの作成された自動生成ファイル(moc_が既存ファイル名の前に付加される、以下mocファイルと呼びます)がcodeblocksのプロジェクトに追加されていないからです。
クリックすると拡大します。

クリックすると拡大します。

  • ファイルの追加
    • mocファイルをcodeblocksのファイルに追加します。この例では、moc_mainwindow.cppとmoc_map.cppを追加しています。
クリックすると拡大します。

クリックすると拡大します。

  • ビルド成功
    • 再ビルドしましょう。ソースコードに問題がなければ成功します。mocファイルを追加する必要がありますが、すべてcodeblocksでビルドできるのでとても簡単です。

以上です。

でむ


コメントを残す

メールアドレスが公開されることはありません。