1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL2にQt6をGitHubからインストールする手順

Posted at

はじめに

とあるプログラムを実行しようとしたらQt6が必要だったので、WSL2にインストールしようとしたら、aptが使用できず少し手間だったので手順を記しておきます。
事前にネットで調べたところ、aptでインストールできるようだったのですが(少なくともQt5は出来たようなのですが)、自分が試した限りではQt5もQt6もそんなパッケージが無いと言われてしまいましたので、何か変更になったようです。
QtはQtのホームページからインストーラを入手するのが公式の手順のようですが(補足参照)、Qtアカウントの作成とか必要だったので、GitHubからソースコードを取得し、ビルド、インストールしてみました。
とりあえず手近な3台のPCでは動作しています。

インストール手順

ビルドするために以下のツールを事前にインストールします。一般的なものですので既に入っているかと思います。

sudo apt -y install build-essential gcc g++ make cmake libtool texinfo dpkg-dev pkg-config

以下はWSL2の環境に固有かも知れませんが必要です。
sudo apt -y install libxcb-glx0 libglu1-mesa-dev libxcb-xinerama0 libxcb-cursor0

準備が出来たら、以下の手順で、GitHubからソースコード一式を取得しビルド、インストールします。

cd /tmp
rm -rf qtbase
git clone https://github.com/qt/qtbase.git
cd qtbase
./configure --prefix=/usr/local -opensource
make
sudo make install

途中でエラーが出なければ成功です。

MSYS2(MinGW)との干渉

前述の手順で、ビルド時にエラーとなるPCがありました。Makeの実行時に、Windowsネイティブ側のMSYS2(MinGW)を参照しようとして当然ながらエラーとなっていました。
どうやら、WindowsにMSYS2(MinGW)がインストールされていると、CMakeが環境を見誤ってmakefileを作ってしまうようです。WindowsからMSYS2(MinGW)をアンインストールしたところ正常に動作するようになりました。
試してませんが、アンインストールせずとも、PATHからMSYS2(MinGW)を外す、または、WSL2の設定でWindsowのPATH設定を引き継がないようにすれば大丈夫かと思います。先にMSYS2(MinGW)をアンインストールしてしまったので試せませんでした。

補足:Qtホームページからのインストール

以下のURLがQtのダウンロードページです。
https://www.qt.io/ja-jp/download#eval-form-modal

「すべての商用パッケージとコンポーネントを含む10日間の無料評価版」がどんとありますが、右側の「オープンソースについて」を選ぶと、オープンソース版のページに進み、下の方に「Download the Qt Online Installer」があります。Qtアカウントの作成が必要で、この時点で面倒になってGitHubから入手しました。
なお、Qtは商用ライセンスとオープンソース・ライセンス(GPL&LGPL)の選択がありますので、製品とか商利用を考えている方は良く調べましょう。本稿の手順はオープンソースです。ライセンス変更は出来ないようなので注意してください。

参考文献

Qt のインストール(Ubuntu 上)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?