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のドキュメントに従います。ここ。私が取ったアクションは次のとおりです。
- Qt6リポジトリを複製し、6.6.2分岐に切り替えます。
$ git clone git://code.qt.io/qt/qt5.git qt6
$ cd qt6
$ git switch 6.6.2
- init-repositoryスクリプトを使用したサブモジュールの初期化
$ perl init-repository
- ビルドディレクトリの作成と構成
$ mkdir build && cd build
$ ../configure
デフォルトでは、次のように設定された-prefix属性を保持しました。/usr/local/Qt-6.6.2
- Qt6ライブラリ全体をビルドしてインストールします。
$ cmake --build . --parallel $(nproc)
$ sudo cmake --install .
このプラットフォームでライブラリ全体を構築するには1時間以上かかります。インストール後のディレクトリの内容は/usr/local/Qt-6.6.2
次のとおりです。
建築徳駅
Duckstation readmeのビルド手順に従い、ビルド手順は次のとおりです。
- レプリケーションストア
$ git clone https://github.com/stenzek/duckstation.git duckstation
$ cd duckstation
- ビルドディレクトリの作成と構成
$ 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
将来的には、このコマンドを使用してビルド構成の問題をより簡単に解決できることを願っています。