CMake не знает, где Qt4 qmake
Я использую ОС Debian, и я пытаюсь указать на cmake, где мой Qt4.
Я пытаюсь создать 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, но мне любопытно, как настроить CMake FIND_PACKAGE для поиска в '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake' для qmake.
Я установил Qt 4.8.5 из исходного кода, и у меня есть папка bin Qt4 в совершенно другом каталоге.
Ответы
Ответ 1
Я решил свою проблему.
Поиск QT_SELECT с помощью команды grep
Я обнаружил, что 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
.
Такой конфигурационный файл имеет две строки с путями. Я просто изменил эти строки, сначала указав на мой каталог Qt bin и второй указав на мой каталог Qt lib. Тогда я мог видеть, что qtchooser -print-env
показывает QTTOOLDIR
и QTLIBDIR
для моего Qt.
Тогда я мог бы легко создать qjson-библиотеку с CMake, Qt4 был найден правильно.
Ответ 2
просто попробуйте "sudo apt-get install qt-sdk", он работает для меня
Ответ 3
В моем опыте эту проблему легче всего решить, поставив папку, содержащую qmake, в переменную среды PATH.
Ответ 4
Вот ответы
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
Ответ 5
Самое простое решение - добавить ссылку в каталог, в котором драгоценный камень должен найти его. На Ubuntu 14.04 он qmake живет в /usr/bin. Простое решение.
Ответ 6
В моем случае именно qtchooser отсутствовал в настройке по умолчанию.
Я понял, что cmake просто выполняет qtchooser и ищет имя файла конфигурации по умолчанию.
Вы можете установить любой файл конфигурации, выполнив следующие действия:
qtchooser -install <arbitrary_name> <path_to_qmake>
В моем случае я просто предоставил "default" как произвольное имя... это создало файл default.conf в соответствующих местах, и все хорошо. Я не думаю, что существует ограничение на количество именованных версий qt, которые у вас есть.
Если вы сделаете это как root, он должен работать для всех пользователей.
Ответ 7
На моем старом дистрибутиве RHEL это сделало это для меня:
sudo yum install qt-devel.x86_64
Просто qt-base не будет работать с cmake.