我有一个 Orange Pi 5,一个正在运行的 arm64 SBCJoshua Riek 用于 RK3588 的 Ubuntu 22.04.4(链接到项目)。
我正在尝试建立鸭站,一个 PS1 模拟器,依赖于 Qt 6.6.2。我通过 apt 获得的最新 arm64 Qt 版本是 6.2.4 版本。
我正在从源代码构建 Qt 6.6.2,但在将构建的库链接到 Duckstation cmake 构建时遇到问题。
从 git 构建 Qt 6.6.2
Qt安装程序应用程序不适用于arm64,因此我按照Qt的文档了解如何从git构建Qt6,发现这里。我采取的步骤如下:
- 克隆 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 .
在这个平台上构建完整的库需要一个多小时。安装后,目录内容/usr/local/Qt-6.6.2
如下:
建筑鸭站
按照 Duckstation 自述文件中的构建说明,以下是构建步骤
- 克隆存储库
$ git clone https://github.com/stenzek/duckstation.git duckstation
$ cd duckstation
- 创建构建目录并配置
$ mkdir build
$ cmake -Bbuild -DCMAKE_BUILD_TYPE=Release
当尝试配置构建时,我在定位 Qt 6.6.2 时遇到错误:
如何将构建的库链接到 CMake 构建?
我尝试创建一个 ldconfig 文件,/etc/ld.so.conf.d/Qt-6.6.2.conf
其中包含
/usr/local/Qt-6.6.2/bin
/usr/local/Qt-6.6.2/lib
创建文件后,我运行了sudo ldconfig
.
如果不是链接问题,我是否将 Qt6 安装到了错误的位置,或者缺少构建中的某些关键配置步骤?
作为旁注:我能够通过将所需的 Qt 版本修补到 6.2.4 并稍微修改源代码来成功构建 Duckstation,但我希望能够构建主要分支,以便更轻松地处理更新等。
答案1
感谢@steeldriver 指出 -DQt6_DIR cmake 标志。
我将标志添加到命令中,所以它最终看起来像这样:
$ 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
将来我希望能够使用该命令更轻松地解决构建配置问题。