qmake: не удалось найти установку Qt ''

136

У меня есть программное обеспечение в Ubuntu, которое требует от меня запуска qmake для генерации Makefile.

Тем не менее, запуск qmake возвращает эту ошибку,

qmake: could not find a Qt installation of ''

Я установил требуемые пакеты, используя

sudo apt-get install qt4-qmake
sudo apt-get install qt5-qmake

Но ошибка не исчезла.

Любая помощь в этом будет с благодарностью!

любознательный
источник
6
Попробуйте запустить sudo apt-get install qtcreator. Устанавливает полный Qt SDK + IDE. Следует добавить все, что вам нужно.
sashoalm
Привет @sashoalm, большое спасибо, кажется, у меня пропали другие пакеты. Сейчас работает: D
Любопытно
6
Это не хорошее решение, поскольку оно установит много потенциально ненужных пакетов.
Скон

Ответы:

177

sudo apt-get install qt5-default работает для меня.

$ aptitude show qt5-default
говорит, что

Этот пакет устанавливает Qt 5 как версию Qt по умолчанию, которая будет использоваться при использовании бинарных файлов разработки, таких как qmake. Он предоставляет конфигурацию по умолчанию для qtchooser, но не препятствует использованию альтернативных установок Qt.

ptmono
источник
1
Можете ли вы описать ваше решение больше?
user35443 15.09.13
3
принятый ответ не является ответом вообще. Этот должен быть принятым ответом.
thias
Следующее устанавливает для меня полную установку разработки qt5: apt-get install qt5base-dev qtdeclarative5-dev qt5-qmake qt5-default qttools5-dev-tools А затем проверьте с помощью: qtchooser -print-env
Salil
29

Вы можете проверить путь к qmake, используя which qmake.

Рассмотрите вариант установки qt4-defaultили qt5-defaultзависит от того, какую версию qt вы хотите использовать.

Вы также можете использовать qtchooser - оболочку, используемую для выбора между двоичными версиями разработки Qt.

jtomaszk
источник
2
Привет @ Warthel4578, спасибо, твой ответ мне помог косвенно, так как я установил qt4-qmake, я должен был вызвать 'qt4-qmake' вместо 'qmake' (я нашел их обоих в пути к каталогу). Теперь это работает :)
Любопытно
Спасибо Warthel, это помогло мне понять, почему мой qmake не работал. QMAKE на Ubuntu 14.04 был слинкован в qtchooser
SCONE
Я получил этот SO-ответ, а затем обнаружил, основываясь на следующей ошибке ( no qtwebkit installation found), которую мне также пришлось запустить, apt-get install qt5-default libqt5webkit5-dev gstreamer1.0-plugins-base gstreamer1.0-tools gstreamer1.0-xкак описано на вики-странице Thoughtbot Github
sameers
15

Для других в моей ситуации решение было:

qmake -qt=qt5

Это было в Ubuntu 14.04 после установки qt5-qmake. qmake была символической ссылкой на qtchooser, которая принимает аргумент -qt.

ячменная или пшеничная лепешка
источник
8

Как сопровождающий Debian Qt, позвольте мне предложить вам не использовать qtx-default. Пожалуйста, прочитайте справочную страницу qtchooser, решение там описано. Если вы заинтересованы в упаковке приложения, вы также можете взглянуть на этот пост в блоге, который я объяснял, как это сделать.

Лисандро
источник
5
Не могли бы вы объяснить, почему мы не должны использовать qtx-default, пожалуйста? Man-страница qtchooser помогает мне понять, что происходит, но я не понимаю, почему проблема с поставкой пакетов по умолчанию.
Роби Басак
2
Было бы хорошо, если бы qmake-qtX был связан с соответствующей версией qt. Вытащить эти кусочки немного громоздко.
Xofo
@RobieBasak уверен: допустим, вы установили qt5-default. Затем вы запускаете приложение qt4, которое вызывает qdbus. Вы получаете qtbus qt5, который должен работать, но это не гарантируется.
Лисандро
1
Конечно, это ошибка в том, как приложение qt4 вызывает qdbus, или в среде, в которой было запущено приложение qt4, вместо того, чтобы выбрать вариант qt5 по умолчанию из моего CLI?
Роби
Первое: возможно, qdbus был плохим примером. Допустим, апстрим решил не переименовывать базовые инструменты Qt с изменением от 4 до 5. Таким образом, невозможно заранее узнать, какая версия приложения будет работать, за исключением того, что у вас есть qtchooser в середине. Но qtchooser, даже если это хорошая попытка, не справляется с некоторыми задачами, по крайней мере, в мире дистрибутивов. В идеале каждое приложение должно быть отозвано после основной версии, либо должна быть сохранена совместимость.
Лисандро
8

У меня была проблема с сборкой драгоценного камня Ruby от jasmine-headless-webkit. Несмотря на то, что установлен qt4, qmake(символическая ссылка на qtchooser) настаивала, что не знает об установке QT. OTOH, он был в состоянии перечислить qt4, когда его спросили напрямую.

Это сделало все лучше:

export QT_SELECT=qt4

Затем qtchooser знал, что нужно использовать qmake-qt4 и так далее.

Барри Келли
источник
Отлично! У меня была такая же проблема при попытке установить qBittorrent, и моя была решена с export QT_QMAKE=/usr/bin. Никогда не знаешь, когда эти переменные среды вернутся к тебе!
Алекс Райан
4

Найдите где qmake-qt4 :

which qmake-qt4

Например, qmake-qt4 находится по этому пути:

/usr/bin/qmake-qt4

Создать символическую ссылку:

cd /usr/local/sbin/
ln -s /usr/bin/qmake-qt4 .
mv qmake-qt4 qmake

С уважением

Альваро Гонсалес
источник
Это отличное решение, когда вы просто хотите qmakeи не хотите полноценной среды qt.
Том Салеба
1

У меня установлен qt4. Я обнаружил, что использование следующего пути работает для меня, несмотря на то, что «qmake» возвращает / usr / bin / qmake, который в любом случае является просто ссылкой на qtchooser.

Следующий путь работает для меня в 64-битной системе. Бег от полного пути:

/usr/lib/x86_64-linux-gnu/qt4/bin/qmake
kristianp
источник
Из всех ответов это на самом деле единственный, который работал удаленно. За исключением того, что мне нужно было использовать /usr/lib/x86_64-linux-gnu/qt5/bin/qmake.
Акито
0

Символическая ссылка на желаемую версию, определенную глобально:

sudo ln -s /usr/bin/qmake-qt5 /usr/bin/qmake

... или на пользователя:

sudo ln -s /usr/bin/qmake-qt5 /home/USERNAME/.local/bin/qmake

... чтобы увидеть, работает ли это:

qmake --version
Мартин Цайтлер
источник
как насчет добавления комментария, почему этот ответ был отклонен? неспособность понять или применить решение не совсем подходит для обоснованной причины ... хотя я вполне уверен, что оно работает, потому что оно у меня работает именно так.
Мартин Цайтлер
1
Подбросьте свой голос, потому что я не являюсь apt-get tard, и я на самом деле строю из источника, и этот ответ по символической ссылке был близок к тому, чтобы подтолкнуть меня на ходу, потому что я забыл, что у меня есть псевдоним qmake. Спасибо.
Пока-Е
0

Для моего Qt 5.7 откройте QtCreator, перейдите в Инструменты -> Параметры -> Построить и запустить -> Версии Qt, где я указал местоположение qmake.

mihota
источник
0

если помощник запускается из терминала напрямую, он будет использовать путь по умолчанию, обычно это / usr / bin / assistant. У меня была похожая ситуация, чтобы заставить ее работать, все, что мне нужно было сделать, это найти фактическую установку моего пути к установочному бину qt, например, xxx / Qt5.13.2 / 5.13.2 / gcc_64 / bin /, типа xxx / Qt5.13.2 /5.13.2/gcc_64/bin/assisstant прямо из терминала

jc_allen
источник