• ベストアンサー

QtでMakeがうまくいかない

Qtの本を買ったので勉強しようと思い、サンプルを作ってみたのですがMakeがうまくいきません。 エラーメッセージを見る限りはリンカがおかしいみたいなのですが… 状況と環境を記載しますので問題点があればどなたかご教授お願いいたします。 なお、情報が足りなければ随時出していきますので何卒お願いいたします 【環境】 OS:Ubuntu7.04 ライブラリ:qt-x11-free3.2.1 コンパイラ:gcc(バージョンが沢山出てわかりませんが最新は4.1のよう) 【手順(インストール~Make)】 (1)tar.gzだったライブラリを/usr/localに展開 (2)環境設定のために「.profile」に以下を追加  QTDIR=/usr/local/qt-x11-free3.2.1  PATH=$QTDIR/bin:$PATH  MANPATH=$QTDIR/doc/man:$MANPATH  LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH  export QTDIR PATH MANPATH LD_LIBRARY_PATH  ※設定後LD_LIBRARY_PATHだけechoでも確認できませんでした (3)ライブラリのMakeのためにqt-x11-free3.2.1ディレクトリ内の「configure」を実行 (4)適当に空のディレクトリにサンプルを作る。 (5)コマンド「qmake -project」を実行 (6)コマンド「qmake」を実行 (7)(6)によって作成されたMakeFileを実行 【状況】 コンパイルでエラーとなり以下が出力されます。 /usr/bin/ld: cannot find -lqt collect2: ldはステータス1で終了しました。 make: ***[Qt]エラー1

質問者が選んだベストアンサー

  • ベストアンサー
  • nthnbslk
  • ベストアンサー率80% (8/10)
回答No.4

>OS:Ubuntu7.04 >ライブラリ:qt-x11-free3.2.1 ここがよくわからないのですが、Ubuntu 7.04 なら公式パッケージに qt3関連の開発環境があるので SynapticからQt開発環境をインストールすればいいはず。 (わざわざ古い qt 3.2.1のソースをコンパイルする必要はない) そのうえで、Qtのサンプルプログラムをコンパイルすればいいのではないですか。 例)Ubuntsu公式のQt3をインストールした場合、環境変数QTDIRは /usr/share/qt3 です。 サンプルソースを仮に qhelloworld.cpp とすると、 $ export QTDIR=/usr/share/qt3 $ gcc -o qhelloworld -I$QTDIR/include -L$QTDIR/lib -lqt-mt qhelloworld.cpp で、実行ファイル qhelloworld が作成されます。

その他の回答 (3)

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.3

>>(3)ライブラリのMakeのためにqt-x11-free3.2.1ディレクトリ内の「configure」を実行 >がそれにあたると思っているのですが違っているのでしょうか? 多分違う。 アーカイブを解凍した場所に INSTALL とか README とかそれっぽい文書があるはずなのでそれを見よう。

  • cynthia4
  • ベストアンサー率51% (186/358)
回答No.2

問題点もなにも >※設定後LD_LIBRARY_PATHだけechoでも確認できませんでした library が、見つからないのは ある意味当然だと思いますが 最初の問題点。未だ有るかも知れませんが これを Clear しないと .bashrc の最後に設定してみて下さい。 /******* .bash_profile に書いてみたが どうも反映されない source .bash_profile ではなくて、logout login .bashrc のなかの bash_completion がどうも良く良く解りません 追求する気もないのですが *******/

nuno0920
質問者

補足

.bashrcに設定したところLD_LIBRARY_PATHが設定できました。 ありがとうございました。 しかしその状態でもMakeで同じエラーが発生しています。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

もちろん、Qt ライブラリ自体はコンパイルしたんですよね。 tar ファイルを展開しただけってことはさすがにないですよね。 あと、コンパイル方法によっては libqt じゃなくて libqt-mt が作成されたような。。。(うろ覚え)

nuno0920
質問者

補足

私の中では >(3)ライブラリのMakeのためにqt-x11-free3.2.1ディレクトリ内の「configure」を実行 がそれにあたると思っているのですが違っているのでしょうか? 実行後にmakeのログが出ていたように見えたので これでコンパイルできていると思っていたのですが…