web-dev-qa-db-ja.com

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

これを行う簡単な方法があるはずだと思いますが、私のgooglefuが失敗しているので、qmakeを実行するときに使用するQtのバージョンを切り替える(または永続的に変更する)方法についての情報をいただければ幸いです。どのバージョンかを尋ねると、次のようになります。

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

QtCreatorをインストールしましたが、次の手順がわかりません。

31
Tamsyn Michael

これは必ずしもUnix/Linux固有のものではないため、Stack Overflowでこれを確認することをお勧めします。それでもなお、QtCreatorは通常、代替のQtインストールの検出に非常に優れています。新しいプロジェクトを作成し、左側の[Projects]タブを確認するだけです。そこで異なるビルド構成を設定できます。各構成のさまざまなインストール済みバージョンから選択するためのドロップダウンボックスが必要です。

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

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

これを.proファイルで設定することもできますが、そうであればドキュメント化されていません(多くのqmake変数と同様)。

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

更新

Ubuntu 13.04および13.10のqtchooserにはバグがあり、QtアプリケーションがさまざまなQtバージョンを検出する方法に影響を与えるようです。 https://bugs.launchpad.net/ubuntu/+source/qt4)を参照してください-x11/+ bug/117782 。これはQtCreatorにも影響を与える可能性があります。

16
Graeme

-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
13
pevik

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

変更を永続的にするには、/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ファイルの名前を変更します。

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

現在は常に指定されたバージョンを使用する必要があります。

4
vstepaniuk

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よりも優先されます。私のシステムの例(Ubuntu 17.10 x64、Qt 5.10.1)でqmakeのデフォルトのQtバージョンを選択する手順は次のとおりです。

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

Sudo mkdir /etc/xdg/qtchooser

構成ファイルを作成して編集します。

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

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

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

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

2
vstepaniuk

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

$ 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
Matt

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
inukaze
Sudo apt-get install qt5-default

ご希望の場合はqt5、 ために qt4 使用する:

Sudo apt-get install qt4-default

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

何らかの理由で、QT3パスはPATHの開始時にすでに永続的にインストールされていたため、QTバージョンセレクターが正しく機能していませんでした。

0
Gunnar