Как изменить, какая версия Qt используется для qmake?

Я чувствую, что должен быть простой способ сделать это, но мой googlefu терпит неудачу, поэтому я действительно ценю некоторую информацию о том, как переключаться (или даже постоянно меняться), какая версия Qt используется при выполнении qmake. Если я спрошу, в какой версии я получаю следующее:

~ $ qmake --version QMake version 3.0 Using Qt version 5.0.1 in /usr/lib/x86_64-linux-gnu 

Я устанавливаю QtCreator, но я не уверен, куда идти отсюда.

Это не обязательно специфично для Unix / Linux, поэтому вам, вероятно, лучше спросить об этом в Stack Overflow. Тем не менее, QtCreator обычно неплохо разбирается в альтернативных установках Qt, просто создайте новый проект и посмотрите на вкладку « Projects » слева. Здесь вы можете установить различные конфигурации сборки. Для каждой конфигурации должен быть раскрывающийся список для выбора из разных установленных версий.

В противном случае, как представляется, переменная окружения QTDIR используется для установки версии Qt. По умолчанию QtCreator устанавливает это для /usr/share/qt4 для меня, поэтому, устанавливая его эквивалентный путь (то есть тот, где находятся файлы конфигурации), необходимо сделать сборку qmake с другой версией. Вы можете протестировать что-то вроде:

 QTDIR=/usr/share/qtX qmake --version 

Также возможно установить это в файле .pro , но если это недокументировано (как и при большом количестве переменных qmake ).

Кроме того, если вы хотите создать определенную основную версию, qmake обычно просто привязывается к двоичному файлу для стандартной версии по умолчанию. Реальные двоичные файлы – qmake-qt4 , qmake-qt5 и т. Д. Также см. man qtchooser и пакеты qtX-default в системах на базе Debian.

Обновить

В Ubuntu 13.04 и 13.10 есть ошибка с qtchooser которая, похоже, влияет на то, как Qt-приложения обнаруживают разные версии Qt, см. https://bugs.launchpad.net/ubuntu/+source/qt4-x11/+bug/1177823 . Это может повлиять и на QtCreator.

Это помогло мне использовать -qt=qt5 или QT_SELECT=qt5 .

 $ qmake --version QMake version 2.01a Using Qt version 4.8.7 in /usr/lib/x86_64-linux-gnu $ qmake -qt=qt5 --version QMake version 3.0 Using Qt version 5.5.1 in /usr/lib/x86_64-linux-gnu $ QT_SELECT=qt5 qmake --version QMake version 3.0 Using Qt version 5.5.1 in /usr/lib/x86_64-linux-gnu 

В (мой) настройке по умолчанию на Fedora 23, имеющей среды qt-3.3.8 и qt-4.8.5 также необходимо временно добавить /usr/libxx/qt4/bin/ в PATH чтобы разрешить cmake / qmake пакетов, чтобы найти нужную версию. Это было необходимо при создании кода, а не при запуске готового приложения QT4.

По какой-то причине путь QT3 уже был установлен там постоянно и, к сожалению, в начале PATH , что предотвратило правильную работу селектора версии QT.

В некоторых дистрибутивах, таких как Debian Jessie Stable, вы можете сделать следующее:

 sudo apt-get install -y qt4-qmake qt4-dev-tools sudo update-alternatives --install "/usr/bin/qmake" "qmake" "/usr/bin/qmake-qt4" 40 sudo update-alternatives --config qmake 

И просто выберите нужную версию, если вам нужно изменить снова, просто запустите снова третью строку.

Многие из вышеперечисленных ответов будут работать. Однако я лично обнаружил, что никто из них не настойчив. Например, я могу запустить эту команду:

 $ QT_SELECT=qt5 qmake --version QMake version 3.0 Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnu 

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

 $ qtchooser -print-env QT_SELECT="default" QTTOOLDIR=... QTLIBDIR=... по $ qtchooser -print-env QT_SELECT="default" QTTOOLDIR=... QTLIBDIR=... 

Единственный способ сделать ваши изменения – изменить версию по умолчанию. Для этого отредактируйте /usr/lib/x86_64-linux-gnu/qtchooser/default.conf и измените эту строку:

 /usr/lib/x86_64-linux-gnu/qt5/bin 

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