Flutter Linux 应用程序构建由于无法识别 ArchLinux 中的 gtk3 安装而失败

问题描述 投票:0回答:1

我尝试在 Arch Linux 中构建 flutter Linux 桌面应用程序,但它引发了一个错误,并显示以下错误消息。

[  +41 ms] -- Checking for module 'gtk+-3.0'
[   +6 ms] --   Package 'gtk+-3.0', required by 'virtual:world', not found
[        ] CMake Error at /usr/share/cmake-3.21/Modules/FindPkgConfig.cmake:562
(message):
[   +2 ms]   A required package was not found
[        ] Call Stack (most recent call first):
[        ]   /usr/share/cmake-3.21/Modules/FindPkgConfig.cmake:784
(_pkg_check_modules_internal)
[        ]   flutter/CMakeLists.txt:24 (pkg_check_modules)

我检查了

flutter doctor -v
的输出,它说:

✗ GTK 3.0 development libraries are required for Linux development.
      They are likely available from your distribution (e.g.: apt install libgtk-3-dev)

我已经安装了

gtk3
Arch Linux 软件包, 但是flutter不识别。

为什么flutter找不到gtk3?


更新:

pacman -Ql gtk3 的结果是显示由软件包安装的非常长的文件列表。 (我无法粘贴它,因为太长,超出了字符数限制)

pkg-config --exists gtk3
已返回
0
,并且
gtk+-3.0.pc
确实存在于
/usr/lib/pkgconfig


我的版本是:

Flutter 2.5.3 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 18116933e7 (4 weeks ago) • 2021-10-15 10:46:35 -0700
Engine • revision d3ea636dc5
Tools • Dart 2.14.4
flutter cmake archlinux
1个回答
0
投票

简短回答

如果您使用 Homebrew,请运行

brew install gtk+3
(如果您不这样做,我不知道安装 Homebrew 并运行命令是否会为您解决问题)。


说来话长...

flutter doctor
目前检查 3 个已安装的库(代码):

  • gtk+-3.0
  • glib-2.0
  • gio-2.0

以及它检查其正在运行的方式

pkg-config --exists {lib_name}

就我而言,即使按照 flutter doctor 输出中的建议运行

sudo apt-get install libgtk-3-dev
也没有解决问题。

经过一番挖掘,我发现其他人也有同样的问题,并以不同的方式解决了这个问题:

  • sudo apt install libblkid-dev
    Github问题
  • 更新 Flutter 的 snap(Github Issue),甚至从头开始重新安装它(我没有这个源) - 这不是我的情况,因为我正在使用 asdf 环境管理器

但是这些并没有解决我的问题。

pkg-config
也没有为这些软件包返回任何内容(运行这些命令),即使它们已安装。

这可能与 Homebrew 更改路径或某些配置有关(这只是基于这个答案的猜测)。

如果您遇到此问题并且没有安装 Homebrew,那么原因可能是其他原因。请告诉我,以便我更新答案。

然后,根据 this comment 我用 Homebrew 安装了

gtk3
,一切正常! =D

brew install gtk+3

© www.soinside.com 2019 - 2024. All rights reserved.