Qt 5.15 のソースコードからのビルドとインストール(Ubuntu 上)

Qt 5 系のオープンソース版の最終系列は 5.15 であり,その標準サポートは 2025 年 5 月 26 日に終了している.新規に開発を始める場合は Qt 6 系(https://www.qt.io/download)の利用を検討する.既存の Qt 5 アプリケーションのビルドのために Qt 5 が必要な場合は,このページの手順を用いる.

ソフトウェア等の利用条件は,利用者自身で確認下さい.

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する.これは,パッケージ情報を最新の状態に保ち,インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである.

Ubuntu のインストールはこちらの別ページで説明する.
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行
# sudo shutdown -r now

C/C++ コンパイラー,make,パッケージツール,git,perl,python3 のインストール

Qt のソースコードのビルドには,C/C++ コンパイラー,makegitperl(5.14 以上),python3 が必要である. インストールするには,端末で,次のコマンドを実行する.

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install build-essential gcc g++ make libtool texinfo dpkg-dev pkg-config
sudo apt -y install git perl python3

Qt 5.15 のビルドとインストールの手順(Ubuntu 上)

前提ソフトウェア

https://wiki.qt.io/Building_Qt_5_from_Git の記載による.

端末で,次のコマンドを実行する.

# Qt のビルドに必要なパッケージ群をまとめて導入
sudo apt -y build-dep qtbase5-dev
# ウインドウシステム(X11/XCB)関連
sudo apt -y install '^libxcb.*-dev' libx11-xcb-dev libxcb-xinerama0-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev
# コード生成・国際化関連
sudo apt -y install flex bison gperf libicu-dev libxslt-dev ruby
# 描画・入力・アクセシビリティ・システム連携関連
sudo apt -y install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libdbus-1-dev libfontconfig1-dev libcap-dev libxtst-dev libpulse-dev libudev-dev libpci-dev libnss3-dev libxss-dev libegl1-mesa-dev libatspi2.0-dev
# マルチメディア関連
sudo apt -y install libasound2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

sudo apt build-dep の実行時に E: You must put some 'source' URIs in your sources.list と表示される場合は,ソースパッケージの取得が無効になっている. 端末software-properties-gtk を実行し,「Ubuntu Software」タブの「ソースコード」(Source code)を有効にしてから,sudo apt update を実行し,上のコマンドを実行し直す.

ソースコードの取得とビルドとインストール

https://wiki.qt.io/Building_Qt_5_from_Git の記載による.

端末で,次のコマンドを実行する.

バージョン 5.15.2 をインストールすることにしている.ソースコードのディレクトリとビルド用のディレクトリは分ける(シャドウビルド).Qt WebEngine はビルド時間が長く,別途 nodejs 等を必要とするため,ここでは -skip qtwebengine により対象外としている.

cd /tmp
rm -rf qt5 qt5-build
git clone https://code.qt.io/qt/qt5.git
cd qt5
git checkout v5.15.2
git submodule update --init --recursive
cd /tmp
mkdir qt5-build
cd qt5-build
../qt5/configure -prefix /usr/local -opensource -confirm-license -nomake examples -nomake tests -skip qtwebengine
make -j$(nproc)
sudo make install

Qt 5.15.2 のソースコードは新しい版の GCC を想定していないため,コンパイル時にヘッダーファイル不足(cstdintlimits 等)のエラーが発生することがある.その場合は,apt で配布されている Qt 5(qtbase5-dev など),または Qt 6 系を使用する.

インストール終了の確認

端末で,次のコマンドを実行する.バージョン番号が表示されればインストールは終了している.

/usr/local/bin/qmake --version