帮助调试 KF5/CMake 在构建 Okular 时出错以避免手绘工具的锯齿线

Flo*_*Flo 8 kde compiling okular

我正在尝试按照以下说明(在页面末尾)从头开始编译 Okular :

git clone https://invent.kde.org/graphics/okular.git
cd okular
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/path/to/your/install/dir ..
make
make install
Run Code Online (Sandbox Code Playgroud)

/path/to/your/install/dir/usr.

Make 失败(最后几行):

-- Could NOT find KF5JS: found neither KF5JSConfig.cmake nor kf5js-config.cmake 
-- Could NOT find KF5Wallet (missing: KF5Wallet_DIR)
-- Could NOT find KF5Wallet: found neither KF5WalletConfig.cmake nor kf5wallet-config.cmake 
CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
  Could NOT find KF5 (missing: Archive Bookmarks Completion Config
  ConfigWidgets CoreAddons Crash IconThemes KIO Parts ThreadWeaver
  WindowSystem DocTools JS Wallet) (Required is at least version "5.44.0")
Call Stack (most recent call first):
  /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE)
  /usr/local/share/ECM/find-modules/FindKF5.cmake:94 (find_package_handle_standard_args)
  CMakeLists.txt:96 (find_package)
Run Code Online (Sandbox Code Playgroud)

前期步骤:

  • 此答案之后安装了 extra-cmake-modules 。

  • 使用sudo apt-get install "libkf5*"以下答案安装 kf5 软件包

  • 尝试了其他几个技巧,都没有成功(例如,将 cmake 命令修改为:

    cmake -DQT_QMAKE_EXECUTABLE=qmake-qt5       \
          -DCMAKE_INSTALL_PREFIX=/usr .. \
    -DCMAKE_BUILD_TYPE=Release            \
    -DBUILD_TESTING=OFF                   \
    -DQT_NO_VERSION_TAGGING=OFF           \
    -Wno-dev .. &&
    make
    
    Run Code Online (Sandbox Code Playgroud)

    )

askubuntu上的相关帖子:

背景:

在 Ubuntu 20.04 LTS 上,将手写笔与手绘注释工具一起使用会导致锯齿状线条,如reddit 上的这篇文章此 gif所示。另请参阅bugtracker 上的这个线程,它建议对./ui/pageviewannotator.cpp(我认为)已经在克隆的 github 版本中实现的修改(在线程中搜索PageViewAnnotator)。问题的 TLDR 是在使用触控笔时,会创建太多点,导致渲染时出现锯齿状。

okular 手绘工具

链接 gif 的屏幕截图:手写笔(左)与手指(右)。在这里使用粗笔划来突出问题。手写笔在 Xournal++ 等其他程序中运行良好。

小智 4

解决方案1号

KDE 分为许多模块,okular 依赖于其中许多模块。因此,最明智的解决方案可能是使用kdesrc_build 工具

一旦你得到它,你基本上需要运行一个命令

<path-to-binary>/kdesrc_build okular
Run Code Online (Sandbox Code Playgroud)

笔记:

  • Okular 依赖于大约 80 个模块,因此下载和构建所有模块需要时间。实际上相当多的时间。还有几 GB 的数据。
  • KDE 具有外部依赖项,您可能需要安装许多额外的开发包。您可以在构建日志中检查缺少的库。但这意味着可能需要运行几次 kdesrc_build。
  • 您的应用程序将根据自定义构建中的库进行构建,但在运行时它将链接到当前运行的 KDE 的库(假设您正在运行一个)。如果您不使用最新版本中的新方法,它可能会起作用,但这是一件棘手的事情。在自定义 kde 构建上运行会话之前,最好先检查一下。

解决方案2

这有点棘手,但如果您想使用系统上已安装的 KDE 版本,可能会节省一些时间。

检查 Okular 实际需要哪些依赖项:

<path-to-binary>/kdesrc_build -list-build okular
Run Code Online (Sandbox Code Playgroud)

使用此列表安装缺少的 kf5 软件包。请注意,您不仅需要库,还需要开发文件(带有 dev 后缀的包)。

使用cmake和您粘贴到问题中的命令直接构建 okular,但请确保您提供的路径对于您的系统来说是正确的。

笔记:

  • cmake 使用 pkg-config 来检测库,因此请确保您已安装它。
  • 您的操作系统可能不会以包的形式提供所有必需的开发文件。