На прошлой неделе мне захотелось проверить небольшое приложение Flutter, созданное Лукасом Шустером.
Мне было особенно интересно попробовать поддержку Flutter Desktop для Linux.
После установки Flutter через fvm я проверил его Git-репозиторий и выполнил следующую команду для сборки приложения Flutter в Linux:
flutter build linux
К сожалению, это дало мне следующее сообщение об ошибке:
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:605 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake/Modules/FindPkgConfig.cmake:827 (_pkg_check_modules_internal)
flutter/CMakeLists.txt:25 (pkg_check_modules)
Я дважды проверил официальную документацию и убедился, что следующие пакеты установлены:
- clang
- cmake
- ninja-build
- pkg-config
- gtk3
После этого я повторил команду сборки, но с включенным флагом verbose:
flutter build linux -v
Что привело к следующему результату:
[] -- Checking for module 'gtk+-3.0'
[+1 ms] -- No package 'gtk+-3.0' found
Flutter не смог обнаружить мою установку gtk.
Вы можете проверить, может ли pkg-config
обнаружить пакет, выполнив команду:
pkg-config --libs gtk+-3.0
В моей системе эта команда выдала следующую ошибку:
Package gtk+-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-3.0' found
Я исправил это, выяснив, где установлен gtk3
и добавив каталог в переменную PKG_CONFIG_PATH
.
Проверьте, где находится пакет:
pacman -Ql gtk3
gtk3 /usr/lib/pkgconfig/gtk+-3.0.pc
Добавим этот каталог в переменную окружения PKG_CONFIG_PATH
:
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
Возможно, вы захотите добавить это в ваш конфигурационный файл .bashrc
или .zshrc
.
Не забудьте перезагрузить среду, например, с помощью команды source ~/.zshrc
!
После изменения PKG_CONFIG_PATH
сборка Flutter вернулась:
Package 'shared-mime-info', required by 'gdk-pixbuf-2.0', not found
Configuring incomplete, errors occurred!
Ладно, еще одна знакомая ошибка, давайте проверим, доступен ли shared-mime-info
:
pkg-config --libs shared-mime-info
Если пакет не был найден в вашей системе, вы можете установить его через yay
или pacman
.
Например:yay -Sy shared-mime-info
.
После этого проверьте путь установки:yay -Ql shared-mime-info
.
Найдите каталог, включающий файл shared-mime-info.pc
, в моем случае это был: /usr/share/pkgconfig/
.
Поэтому я добавил этот каталог в PKG_CONFIG_PATH
:
После этого я смог собрать и запустить приложение Flutter на Manjaro!
Фото Danist Soh на Unsplash