web-dev-qa-db-ja.com

CMakeはQt4 qmakeがどこにあるかを知りません

私はDebian OSを使用しており、私のQt4がどこにあるかをcmakeに示しようとしています。

私はqjsonライブラリとそのCMakeLists.txtを構築しようとしています: http://Pastebin.com/fKNp0Qgy

私は得る:

Qt5 not found, searching for Qt4
qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory
CMake Error at /usr/share/cmake-2.8/Modules/FindQt4.cmake:1386 (message):
  Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x
Call Stack (most recent call first):
  CMakeLists.txt:55 (FIND_PACKAGE)


-- Configuring incomplete, errors occurred!

私はCMakeとQt configに慣れていませんが、どの設定がCMake FIND_PACKAGEにqmakeの '/ usr/lib/x86_64-linux-gnu/qt4/bin/qmake'を強制的に調べるのか興味があります。ソースからQt 4.8.5をインストールしましたが、Qt4 binフォルダーは完全に異なるディレクトリにあります。

23
bLAZ

問題を解決しました。

grepコマンドでQT_SELECTを探していると、QT_SELECTが/usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.confファイルに関連していることがわかりました。 「デフォルト」のファイル名から、それがQT_SELECTと見なされるものであると想定しました。 qtchooser -lで表示される他の設定は、/usr/share/qtchooser/および/usr/lib/x86_64-linux-gnu/qtchooserディレクトリにあります。

このような構成ファイルには、パスを含む2行があります。これらの行を変更しました。最初にQt binディレクトリを指し、次にQt libディレクトリを指します。その後、qtchooser -print-envQTTOOLDIRQTLIBDIRをQtに表示することがわかりました。

その後、CMakeでqjsonライブラリを簡単に構築できました。Qt4が正しく見つかりました。

8
bLAZ

「sudo apt-get install qt-sdk」を試してください

21
Jim_Di

私の経験では、この問題はqmakeを含むフォルダーをPATH環境変数に入れることで最も簡単に解決できます。

7
Steve Fallows

ここに答えがあります

https://askubuntu.com/questions/540746/ubuntu-14-04-qt5-development-libraries/540757#540757

どうやら

apt-file search Qt5CoreConfig.cmakeは私が行方不明でした。これは私を手に入れました:

qtbase5-dev: /usr/lib/x86_64-linux-gnu/cmake/Qt5Core/Qt5CoreConfig.cmake

それをインストールすると、CMakeがQt5を見つけることにつながるようです。 qmakeは、直接呼び出された場合でも同じ問題を報告します... qt4の一部の残骸がまだインストールされているようです...

qmake問題に関しては、これは次の方法で修正されます。

Sudo apt-get install qt5-default
3
JoulC

私の場合、qtchooserに「デフォルト」構成が欠落しているだけでした。 cmakeはqtchooserを実行し、「デフォルト」の構成ファイル名を探しているだけだと考えました。以下を実行することにより、任意の構成ファイルをインストールできます。

qtchooser -install <arbitrary_name> <path_to_qmake>

私の場合、単に任意の名前として「デフォルト」を指定しました...これにより、適切な場所にdefault.confファイルが作成されました。 qtの名前付きバージョンの数に制限はないと思います。これをrootとして実行すると、すべてのユーザーで機能するはずです。

1
user3420082

1)qtchooser構成ファイルはどこにありますか?

  $: locate qtchooser | grep conf

2)confファイルのリストから、おそらく「default.conf」という呼び出しが1つあります。これは、他の呼び出し(4.confまたはqt4.confまたは5.confまたはqt5.conf)へのリンクです。あなたにも意味のあるものを選択し、それへのリンクを作成します。

デフォルトのファイルパスが

/usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

バックアップを作成する:

  $: cd $(dirname /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf)
  $: cp -av default.conf default.conf_backup

ターゲットが/usr/lib/x86_64-linux-gnu/qtchooser/qt5.confであるとしましょう

次に:

  $: Sudo ln -s /usr/lib/x86_64-linux-gnu/qtchooser/qt5.conf default.conf

3)qmakeへのパスは正しいですか?

Qmakeの場所を確認する

  $: locate qmake | grep bin

変更したqtchooser/default.confに示されているものと同じですか?

  $: cat /usr/lib/x86_64-linux-gnu/qtchooser/qt5.conf

答えがYESの場合、完了です。 anserがnoの場合、ファイルを変更する必要があります。

バックアップを作成する:

  $: cd $(dirname /usr/lib/x86_64-linux-gnu/qtchooser/qt5.conf)
  $: cp -av qt5.conf qt5.conf_backup

ファイルを編集し、qmakeの場所へのパスを変更します

  $ Sudo vi qt5.conf

これで完了です。

0
luis_js

私の古いRHELディストリビューションでは、これが私のためにそれをしました:

Sudo yum install qt-devel.x86_64

Qt-baseだけではcmakeで動作しません。

0
Michael Fayad

最も簡単な解決策は、gemがそれを見つけると期待していたディレクトリにリンクを追加することでした。 Ubuntu 14.04では、qmakeは/ usr/binにあります。シンプルなソリューション。

0
snapdev