CMakeビルドが/usr/localにQt6ライブラリを見つけることができません。

CMakeビルドが/usr/localにQt6ライブラリを見つけることができません。

arm64 SBCであるOrange Pi 5を実行しています。Joshua RiekのRK3588用Ubuntu 22.04.4プロジェクトリンク)。

構築しようとしています。鴨駅、Qt 6.6.2に依存するPS1エミュレータです。 aptで入手した最新のarm64 Qtバージョンは6.2.4バージョンです。

ソースからQt 6.6.2をビルドしていますが、ビルドされたライブラリをDuckstation cmakeビルドにリンクするのに問題があります。

GitでQt 6.6.2をビルドする

Qtインストーラアプリケーションはarm64では動作しないので、gitでQt6をビルドする方法に関するQtのドキュメントに従います。ここ。私が取ったアクションは次のとおりです。

  1. Qt6リポジトリを複製し、6.6.2分岐に切り替えます。
$ git clone git://code.qt.io/qt/qt5.git qt6
$ cd qt6
$ git switch 6.6.2
  1. init-repositoryスクリプトを使用したサブモジュールの初期化
$ perl init-repository
  1. ビルドディレクトリの作成と構成
$ mkdir build && cd build
$ ../configure

デフォルトでは、次のように設定された-prefix属性を保持しました。/usr/local/Qt-6.6.2

  1. Qt6ライブラリ全体をビルドしてインストールします。
$ cmake --build . --parallel $(nproc)
$ sudo cmake --install .

このプラットフォームでライブラリ全体を構築するには1時間以上かかります。インストール後のディレクトリの内容は/usr/local/Qt-6.6.2次のとおりです。

ここに画像の説明を入力してください。

建築徳駅

Duckstation readmeのビルド手順に従い、ビルド手順は次のとおりです。

  1. レプリケーションストア
$ git clone https://github.com/stenzek/duckstation.git duckstation
$ cd duckstation
  1. ビルドディレクトリの作成と構成
$ mkdir build
$ cmake -Bbuild -DCMAKE_BUILD_TYPE=Release

ビルドを構成しようとすると、Qt 6.6.2をターゲットとするエラーが発生します。

ここに画像の説明を入力してください。

ビルドされたライブラリをCMakeビルドにリンクするには?

/etc/ld.so.conf.d/Qt-6.6.2.conf以下を含むldconfigファイルを作成しました。

/usr/local/Qt-6.6.2/bin
/usr/local/Qt-6.6.2/lib

ファイルを作成して実行してみましたsudo ldconfig

接続の問題ではない場合は、Qt6を間違った場所にインストールしましたか、それともビルドにいくつかの主要な構成手順がありませんか?

参考に必要なQtバージョンを6.2.4にパッチし、ソースコードを軽く修正してDuckstationを正常に構築できましたが、アップデートなどを処理できるようにメインブランチを構築できたらと思います。より簡単に。

答え1

-DQt6_DIR cmakeフラグを指摘してくれた@steeldriverに感謝します。

コマンドにフラグを追加すると、次のように表示されます。

$ cmake -Bbuild -DCMAKE_BUILD_TYPE=Release -DQt6_DIR:PATH=/usr/local/Qt-6.6.2/lib/cmake/Qt6

これでビルドファイルが正常に作成され、プロジェクトをコンパイルできます。

cmake -LAHこれらのディレクトリ関連のフラグを一覧表示する方法が気になったら、次のことを学びました。郵便はがき。 Duckstation プロジェクトのルートディレクトリで実行する場合、Qt6_DIR エントリは次のようになります。

Qt6_DIR:PATH=Qt6_DIR-NOTFOUND

将来的には、このコマンドを使用してビルド構成の問題をより簡単に解決できることを願っています。

関連情報