qmakeに使用するQtのバージョンを変更するにはどうすればよいですか?


31

これを行う簡単な方法があるはずですが、私のgooglefuは失敗しているので、qmakeを行うときに使用するQtのバージョンを切り替える(または永続的に変更する)方法についての情報を本当に感謝します。どのバージョンを尋ねると、次のものが得られます。

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

QtCreatorをインストールしましたが、ここからどこに行くべきかわかりません。

回答:


16

これは必ずしもUnix / Linux固有ではないため、おそらくStack Overflowでこれを尋ねる方がよいでしょう。それにも関わらず、QtCreatorは通常、代替Qtインストールの検出に非常に優れており、新しいプロジェクトを作成Projectsして左側のタブの下を見るだけです。そこで異なるビルド構成を設定できます。構成ごとにインストールされているさまざまなバージョンから選択するドロップダウンボックスがあるはずです。

そうでない場合、QTDIRQtバージョンを設定するために環境変数が使用されているようです。デフォルトでは、QtCreatorはこれを/usr/share/qt4設定します。したがって、同等のパス(つまり、構成ファイルがあるパス)に設定すると、qmakeが異なるバージョンでビルドされます。次のようなものでテストできます。

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

.proファイルでこれを設定することも可能かもしれませんが、その場合は文書化されていません(非常に多くのqmake変数と同様)。

また、特定のメジャーバージョンでビルドする場合qmakeは、通常、デフォルトのメジャーバージョンのバイナリにシンボリックリンクされます。本当のバイナリがあるqmake-qt4qmake-qt5も参照してくださいなどman qtchooserqtX-defaultのDebianベースのシステム上のパッケージ。

更新

qtchooserUbuntu 13.04および13.10には、Qtアプリケーションが異なるQtバージョンを検出する方法に影響を与えると思われるバグがあります。https://bugs.launchpad.net/ubuntu/+source/qt4-x11/+bug/1177823を参照してください。これはQtCreatorにも影響する場合があります。


ありがとう!はげたqmakeの代わりにqmake-qt4を使用する必要がありました-とても簡単ですが、必要な情報が見つかりませんでした。ありがとう!
タムシンマイケル14

@TamsynMichael-はい、Linux側のbinのqmakeは単なるシンボリックリンクです。したがって、update-alternativesのようなものを使用して前後に切り替える場合、それが理想的です。更新の代替手段ではなく、PyQtビルドスクリプトのようなものは、とにかくバイナリへの直接参照を必要とします-シンボリックリンクではありません。
RobotHumans

13

-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

マイナーバージョンとパッチバージョンについてはどうですか?たとえば、どのように5.9.4または5.11を5.12よりも明示的に選択できますか?
DavidJ

4

より良い方法があります。

変更を永続的にしたい場合は、/usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.confファイルを変更する必要があります。これはへのシンボリックリンク../../../../share/qtchooser/qt4-x86_64-linux-gnu.confです。

これが私のシステムの例です(Ubuntu 17.10 x64、Qt 5.10.1)。元のsymlinkファイルとそのターゲットの両方を適切な場所に保持することをお勧めします(元の構成を復元する場合)。また、デフォルトの場所に新しいファイルを作成します(一貫性を保つため)。手順は次のとおりです。

symlinkファイルの名前を変更します。

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

(任意の名前で)新しいターゲット構成ファイルを作成します。

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

このファイルには2行が含まれている必要があります。1行目はQtバイナリ(qmakeを含む)へのパスで、2行目はQtライブラリ(.soファイルを含む)へのパスです。私の場合は

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

保存して閉じます。default.conf新しい構成ファイルへのシンボリックリンクを作成します。

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

Qtバージョンを確認します。

qmake --version

これで、常に指定されたバージョンが使用されるはずです。


2

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

変更が必要な場合は、必要なバージョンを選択するだけで、3行目をもう一度実行します。


2

上記の回答の多くが機能します。しかし、私は個人的にそれらのどれも永続的ではないことを発見しました。たとえば、次のコマンドを実行できます。

$ 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=...

変更を保持する唯一の方法は、デフォルトバージョンを変更することです。これを行うには、/usr/lib/x86_64-linux-gnu/qtchooser/default.conf次の行を編集して変更します。

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

必要qt5なバージョンに変更する場所。このコマンドqtchooser -list-versionsを使用して、マシンにインストールされているバージョンを確認できます。


2

qmake/usr/bin/qmake)は実際にはqtchooser/usr/bin/qtchooser)への単なるシンボリックリンクです。

以下からの引用です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.

ファイルの/etc/xdg/qtchooser/default.conf優先順位は、よりも高くなってい/usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.confます。qmake私のシステムの例(Ubuntu 17.10 x64、Qt 5.10.1)でデフォルトのQtバージョンを選択する方法の手順は次のとおりです。

/etc/xdg/qtchooserディレクトリを作成します。

sudo mkdir /etc/xdg/qtchooser

構成ファイルを作成および編集します。

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

上記のように。このファイルには2行が含まれている必要があります。最初の行はQtバイナリ(qmakeを含む)へのパスで、2行目はQtライブラリ(.soファイルを含む)へのパスです。私の場合、次のようになります。

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

保存して閉じます。今、qmake指定されたQtのバージョンを使用する必要があります。


シンボリックリンクも機能します:sudo mkdir -p / etc / xdg / qtchooser && sudo ln -s /usr/share/qtchooser/qt5-x86_64-linux-gnu.conf /etc/xdg/qtchooser/default.conf
maharvey67

1
sudo apt-get install qt5-default

使用する場合はqt5qt4

sudo apt-get install qt4-default

この答えはページ上とても低かった、あまりにも悪い、+1、素晴らしいとシンプル
JPA

0

両方qt-3.3.8qt-4.8.5環境を持つFedora 23の(私の)デフォルト設定では、/ パッケージが適切なバージョンを見つけることができるように/usr/libxx/qt4/bin/一時的にディレクトリを追加する必要がありました。これは、完成したQT4アプリを実行するときではなく、コードをビルドするときに必要でした。PATHcmakeqmake

何らかの理由で、QT3パスがの開始時に既に永続的にインストールされており、残念ながらPATHQTバージョンセレクターが正常に機能していませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.