我尝试在 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
如果您使用 Homebrew,请运行
brew install gtk+3
(如果您不这样做,我不知道安装 Homebrew 并运行命令是否会为您解决问题)。
flutter doctor
目前检查 3 个已安装的库(代码):
以及它检查其正在运行的方式
pkg-config --exists {lib_name}
。
就我而言,即使按照 flutter doctor 输出中的建议运行
sudo apt-get install libgtk-3-dev
也没有解决问题。
经过一番挖掘,我发现其他人也有同样的问题,并以不同的方式解决了这个问题:
sudo apt install libblkid-dev
(Github问题)但是这些并没有解决我的问题。
pkg-config
也没有为这些软件包返回任何内容(运行这些命令),即使它们已安装。
这可能与 Homebrew 更改路径或某些配置有关(这只是基于这个答案的猜测)。
如果您遇到此问题并且没有安装 Homebrew,那么原因可能是其他原因。请告诉我,以便我更新答案。
然后,根据 this comment 我用 Homebrew 安装了
gtk3
,一切正常! =D
brew install gtk+3