qmake: nie można znaleźć instalacji Qt programu „”

136

Mam oprogramowanie w Ubuntu, które wymaga uruchomienia qmake w celu wygenerowania pliku Makefile.

Jednak uruchomienie qmake zwraca ten błąd,

qmake: could not find a Qt installation of ''

Zainstalowałem to, co uważałem za wymagane pakiety przy użyciu,

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

Ale błąd nie zniknął.

Każda pomoc w tej sprawie byłaby mile widziana!

Ciekawy
źródło
6
Spróbuj biegać sudo apt-get install qtcreator. Instaluje pełny zestaw Qt SDK + IDE. Powinien dodać wszystko, czego potrzebujesz.
sashoalm
Cześć @sashoalm, wielkie dzięki, wydaje mi się, że brakuje mi innych pakietów. Teraz działa: D
Ciekawy
6
Nie jest to dobre rozwiązanie, ponieważ spowoduje zainstalowanie wielu potencjalnie niepotrzebnych pakietów.
Scone

Odpowiedzi:

177

sudo apt-get install qt5-default pracuje dla mnie.

$ aptitude show qt5-default
mówi to

Ten pakiet ustawia Qt 5 jako domyślną wersję Qt używaną podczas korzystania z plików binarnych programistycznych, takich jak qmake. Zapewnia domyślną konfigurację dla qtchooser, ale nie zapobiega używaniu alternatywnych instalacji Qt.

ptmono
źródło
1
Czy możesz dokładniej opisać swoje rozwiązanie?
user35443
3
zaakceptowana odpowiedź wcale nie jest odpowiedzią. Ta powinna być akceptowaną odpowiedzią.
thias
Następujące konfiguruje dla mnie pełną instalację deweloperską qt5: apt-get install qt5base-dev qtdeclarative5-dev qt5-qmake qt5-default qttools5-dev-tools A następnie sprawdź za pomocą: qtchooser -print-env
Salil
29

Możesz sprawdzić ścieżkę do qmake używając which qmake.

Rozważ instalację qt4-defaultlub qt5-defaultzależy, jakiej wersji qt chcesz użyć.

Możesz także użyć qtchooser - wrappera używanego do wybierania między wersjami binarnymi Qt.

jtomaszk
źródło
2
Cześć @ Warthel4578, dzięki, twoja odpowiedź pomogła mi pośrednio, ponieważ zainstalowałem qt4-qmake, powinienem był wywołać 'qt4-qmake' zamiast 'qmake' (znalazłem oba z nich w ścieżce katalogu). Teraz działa :)
Ciekawy
Dzięki, Warthel, pomogło mi to odkryć, dlaczego mój qmake nie działa. qmake na Ubuntu 14.04 był dowiązany symbolicznie do qtchooser
Scone
Dotarłem do tej odpowiedzi SO, a następnie znalazłem, na podstawie następnego błędu ( no qtwebkit installation found), który również musiałem uruchomić apt-get install qt5-default libqt5webkit5-dev gstreamer1.0-plugins-base gstreamer1.0-tools gstreamer1.0-xzgodnie z opisem na stronie wiki Thoughtbot Github
sameers
15

Dla innych w mojej sytuacji rozwiązaniem było:

qmake -qt=qt5

Było to na Ubuntu 14.04 po zainstalowaniu qt5-qmake. qmake było dowiązaniem symbolicznym do qtchooser, które pobiera argument -qt.

Rożek
źródło
8

Jako opiekun Debiana Qt, pozwólcie mi zasugerować, abyście nie używali qtx-default. Przeczytaj stronę podręcznika qtchooser, rozwiązanie jest tam opisane. Jeśli jesteś zainteresowany opakowaniem aplikacji, możesz również rzucić okiem na ten wpis na blogu, który wyjaśniłem, jak to zrobić

lisandro
źródło
5
Czy możesz wyjaśnić, dlaczego nie powinniśmy używać qtx-default? Strona podręcznika qtchooser pomaga mi zrozumieć, co się dzieje, ale nie rozumiem, dlaczego posiadanie domyślnej dostawy pakietu jest problemem.
Robie Basak
2
Byłoby miło, gdyby qmake-qtX był dołączony do odpowiedniej wersji qt. Wciąganie tych kawałków jest nieco uciążliwe.
Xofo,
@RobieBasak Jasne: powiedzmy, że instalujesz qt5-default. Następnie uruchamiasz aplikację qt4, która wywołuje qdbus. Otrzymujesz qdbus qt5, który powinien działać, ale nie jest to gwarantowane.
lisandro
1
Z pewnością jest to błąd w sposobie, w jaki aplikacja qt4 wywołuje qdbus lub w środowisku, w którym aplikacja qt4 została uruchomiona, a nie mój wybór, aby domyślnie Qt5 był używany z mojego CLI?
Robie Basak
Po pierwsze: może qdbus był złym przykładem. Powiedzmy, że firma upstream zdecydowała się nie zmieniać nazw podstawowych narzędzi Qt ze zmianą z 4 na 5. Nie można więc wcześniej wiedzieć, która wersja będzie działać, chyba że w środku znajduje się qtchooser. Ale qtchooser, nawet jeśli jest to niezła próba, nie udaje się w wielu miejscach, przynajmniej w świecie dystrybucji. Idealnie byłoby, gdyby każda aplikacja została przywołana po wersji głównej lub zachować zgodność.
lisandro
8

Miałem problem z budowaniem Rubinowego klejnotu Jasmine-Headless-Webkit. Pomimo zainstalowania qt4 qmake(dowiązanie symboliczne do qtchooser) upierało się, że nie wiedział o instalacji QT. OTOH, był w stanie wyświetlić listę qt4, gdy zapytano go bezpośrednio.

To sprawiło, że wszystko było lepsze:

export QT_SELECT=qt4

qtchooser wiedział wtedy, że używa qmake-qt4 i tak dalej.

Barry Kelly
źródło
Idealny! Miałem ten sam problem podczas próby zainstalowania qBittorrenta i mój został rozwiązany export QT_QMAKE=/usr/bin. Nigdy nie wiadomo, kiedy te zmienne środowiskowe wrócą, by cię ugryźć!
Alex Ryan
4

Wyszukaj gdzie jest qmake-qt4 :

which qmake-qt4

Na przykład qmake-qt4 znajduje się w tej ścieżce:

/usr/bin/qmake-qt4

Utwórz dowiązanie symboliczne:

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

pozdrowienia

Alvaro Gonzalez
źródło
Jest to świetne rozwiązanie, gdy po prostu chcesz qmakei nie chcesz mieć pełnego środowiska qt.
Tom Saleeba
1

Mam zainstalowany qt4. Zauważyłem, że użycie następującej ścieżki zadziałało dla mnie, pomimo tego, że `` which qmake '' zwracał / usr / bin / qmake, który i tak jest tylko linkiem do qtchooser.

Poniższa ścieżka działa dla mnie w systemie 64-bitowym. Bieganie z pełnej ścieżki:

/usr/lib/x86_64-linux-gnu/qt4/bin/qmake
kristianp
źródło
Ze wszystkich odpowiedzi jest to właściwie jedyna, która działała zdalnie. Z wyjątkiem tego, że musiałem użyć /usr/lib/x86_64-linux-gnu/qt5/bin/qmake.
Akito
0

Symboliczne łącze do wybranej wersji, zdefiniowane globalnie:

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

... lub na użytkownika:

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

... aby sprawdzić, czy działa:

qmake --version
Martin Zeitler
źródło
co powiesz na komentarz, dlaczego ta odpowiedź została odrzucona? niezrozumienie lub niezrozumienie rozwiązania nie kwalifikuje się do końca jako ważny powód ... podczas gdy jestem prawie pewien, że działa, ponieważ tak właśnie działa.
Martin Zeitler,
1
Rzucam głos w górę, ponieważ nie jestem tardem apt-get, a tak naprawdę buduję ze źródła, a ta odpowiedź na link symboliczny była zamknięciem do wprowadzenia mnie na właściwe tory, ponieważ zapomniałem, że utworzyłem alias mojego „qmake”. Dzięki.
While-E
0

W moim Qt 5.7 otwórz QtCreator, przejdź do Narzędzia -> Opcje -> Kompiluj i uruchom -> Wersje Qt podały mi lokalizację qmake.

mihota
źródło
0

jeśli pomocnik jest uruchamiany bezpośrednio z terminala, użyje domyślnej ścieżki, zwykle jest to / usr / bin / assistant. Miałem podobną sytuację, aby to zadziałało, wszystko, co musiałem zrobić, to znaleźć rzeczywistą instalację mojej ścieżki bin instalacji qt, na przykład xxx / Qt5.13.2 / 5.13.2 / gcc_64 / bin /, wpisz xxx / Qt5.13.2 /5.13.2/gcc_64/bin/assisstant bezpośrednio z terminala

jc_allen
źródło