Como eu mudo qual versão do Qt é usada para o qmake?

27

Eu sinto que deveria haver uma maneira simples de fazer isso, mas meu googlefu está falhando, então eu realmente aprecio algumas informações sobre como mudar (ou mesmo alterar permanentemente) qual versão do Qt é usada ao fazer o qmake. Se eu perguntar qual versão eu recebo o seguinte:

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

Eu instalei o QtCreator, mas não tenho certeza para onde ir a partir daqui.

    
por Tamsyn Michael 21.02.2014 / 11:27

7 respostas

12

Isso não é necessariamente específico para Unix / Linux, então é melhor perguntar isso no Stack Overflow. Nunca, o QtCreator geralmente é bom em detectar instalações alternativas do Qt, basta criar um novo projeto e olhar sob a aba Projects à esquerda. Você pode definir diferentes configurações de compilação lá. Deve haver uma caixa suspensa para selecionar entre as várias versões instaladas para cada configuração.

Caso contrário, parece que a variável de ambiente QTDIR é usada para definir a versão do Qt. Por padrão QtCreator define isso para /usr/share/qt4 para mim, então configurá-lo para o caminho equivalente (ou seja, aquele em que os arquivos de configuração são) deve fazer qmake construir com uma versão diferente. Você poderia testar com algo como:

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

Também pode ser possível definir isso no arquivo .pro , mas se for, ele não está documentado (como em muitas variáveis qmake ).

Além disso, se você deseja criar com uma versão principal específica, qmake geralmente é apenas vinculado a um binário para a versão principal padrão. Os binários reais são qmake-qt4 , qmake-qt5 etc. Veja também man qtchooser e os qtX-default packages nos sistemas baseados em Debian.

Atualizar

Existe um bug com qtchooser no Ubuntu 13.04 e 13.10 que parece afetar a forma como os aplicativos Qt detectam diferentes versões do Qt, veja link . Isso pode afetar o QtCreator também.

    
por 21.02.2014 / 12:44
13

Ele me ajudou a usar a variável% de ambiente -qt=qt5 ou 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
    
por 05.10.2015 / 11:33
2

Sob algumas distros como o Debian Jessie Stable você pode fazer o seguinte:

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

E apenas selecione a versão que você precisa, se você precisar alterar novamente, basta executar novamente a terceira linha.

    
por 05.11.2016 / 08:34
2

Existe um método melhor .

Se você deseja tornar suas alterações permanentes, é necessário modificar o arquivo /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf , que é um link simbólico para ../../../../share/qtchooser/qt4-x86_64-linux-gnu.conf .

Aqui está um exemplo para o meu sistema (Ubuntu 17.10 x64, Qt 5.10.1). Eu sugeriria manter o arquivo original do symlink e seu alvo no lugar (no caso de querer recuperar a configuração original). E também crie os novos arquivos nos locais padrão (para consistência). Então, aqui estão os passos:

Renomeie o arquivo de link simbólico:

sudo mv /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf_orig

Crie um novo arquivo de configuração de destino (com qualquer nome):

gksudo gedit /usr/share/qtchooser/my_Qt_5.10.1_Desktop_gcc_x64.conf

Este arquivo deve conter duas linhas: a primeira linha é o caminho para os binários do Qt (incluindo o qmake) e a segunda é o caminho para as bibliotecas do Qt (incluindo os arquivos .so). No meu caso, será:

<Qt_dir>/5.10.1/gcc_64/bin
<Qt_dir>/5.10.1/gcc_64/lib

Salve e feche. Agora crie um link simbólico default.conf para o novo arquivo de configuração:

ln -s /usr/share/qtchooser/my_Qt_5.10.1_Destop_gcc_x64.conf /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

Verifique sua versão do Qt:

qmake --version

Agora, deve sempre usar a versão especificada!

    
por 01.03.2018 / 04:00
1

Muitas das respostas acima funcionarão. No entanto, eu pessoalmente descobri que nenhum deles é persistente. Por exemplo. Eu posso executar este comando:

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

Mas se eu abrir um novo terminal e verificar a versão do Qt, ele será revertido para o padrão, e se você tiver várias versões do Qt instalado, o padrão pode não ser o que você deseja. Você pode dizer, executando este comando:

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

A única maneira de fazer suas alterações é alterar a versão padrão. Para isso, edite /usr/lib/x86_64-linux-gnu/qtchooser/default.conf e altere esta linha:

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

Onde você altera qt5 para a versão desejada. Você pode usar o comando qtchooser -list-versions para ver quais versões estão instaladas em sua máquina.

    
por 31.07.2017 / 04:07
1

qmake ( /usr/bin/qmake ) na verdade é apenas um link simbólico para qtchooser ( /usr/bin/qtchooser ).

Aqui está uma cotação de man qtchooser :

FILES
       /etc/xdg/qtchooser/default.conf
              System-wide  configuration  files. Each has two lines, the first
              is the path to the binaries and the second is the path to the Qt
              libraries.  If  a default.conf is provided, the settings from it
              will be automatically used in case nothing else is selected.

       $HOME/.config/qtchooser/*.conf
              User configuration files.

O arquivo /etc/xdg/qtchooser/default.conf tem prioridade maior que /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf . Aqui estão os passos de como escolher a versão padrão do Qt para qmake no exemplo do meu sistema (Ubuntu 17.10 x64, Qt 5.10.1).

Crie o diretório /etc/xdg/qtchooser :

sudo mkdir /etc/xdg/qtchooser

Crie e edite o arquivo de configuração:

gksudo gedit /etc/xdg/qtchooser/default.conf

Como dito acima. este arquivo deve conter duas linhas: a primeira linha é o caminho para os binários do Qt (incluindo o qmake) e a segunda é o caminho para as bibliotecas do Qt (incluindo os arquivos .so). No meu caso, será:

<Qt_dir>/5.10.1/gcc_64/bin
<Qt_dir>/5.10.1/gcc_64/lib

Salve e feche. Agora, qmake deve usar a versão do Qt especificada.

    
por 01.03.2018 / 05:38
0

Na (minha) configuração padrão no Fedora 23 com os ambientes qt-3.3.8 e qt-4.8.5 , também foi necessário adicionar temporariamente o diretório /usr/libxx/qt4/bin/ ao PATH para permitir que os pacotes cmake / qmake para encontrar a versão correta. Isso foi necessário ao criar o código, não ao executar o aplicativo QT4 finalizado.

Por alguma razão, o caminho do QT3 já foi instalado lá permanentemente e infelizmente no início do PATH , o que impediu o seletor de versão do QT funcionar corretamente.

    
por 19.04.2016 / 13:31