CMake 构建在 /usr/local 中找不到 Qt6 库

CMake 构建在 /usr/local 中找不到 Qt6 库

我有一个 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,发现这里。我采取的步骤如下:

  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 .

在这个平台上构建完整的库需要一个多小时。安装后,目录内容/usr/local/Qt-6.6.2如下:

在此输入图像描述

建筑鸭站

按照 Duckstation 自述文件中的构建说明,以下是构建步骤

  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 构建?

我尝试创建一个 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

将来我希望能够使用该命令更轻松地解决构建配置问题。

相关内容