私は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フォルダーは完全に異なるディレクトリにあります。
問題を解決しました。
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-env
がQTTOOLDIR
とQTLIBDIR
をQtに表示することがわかりました。
その後、CMakeでqjsonライブラリを簡単に構築できました。Qt4が正しく見つかりました。
「sudo apt-get install qt-sdk」を試してください
私の経験では、この問題はqmakeを含むフォルダーをPATH環境変数に入れることで最も簡単に解決できます。
ここに答えがあります
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
私の場合、qtchooserに「デフォルト」構成が欠落しているだけでした。 cmakeはqtchooserを実行し、「デフォルト」の構成ファイル名を探しているだけだと考えました。以下を実行することにより、任意の構成ファイルをインストールできます。
qtchooser -install <arbitrary_name> <path_to_qmake>
私の場合、単に任意の名前として「デフォルト」を指定しました...これにより、適切な場所にdefault.confファイルが作成されました。 qtの名前付きバージョンの数に制限はないと思います。これをrootとして実行すると、すべてのユーザーで機能するはずです。
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
これで完了です。
私の古いRHELディストリビューションでは、これが私のためにそれをしました:
Sudo yum install qt-devel.x86_64
Qt-baseだけではcmakeで動作しません。
最も簡単な解決策は、gemがそれを見つけると期待していたディレクトリにリンクを追加することでした。 Ubuntu 14.04では、qmakeは/ usr/binにあります。シンプルなソリューション。