Linux虚拟机构建Flutter应用时CMake缺失依赖包报错
在Linux虚拟机执行flutter run构建Flutter应用时,出现如下CMake错误:
flutter run
Launching lib/main.dart on Linux in debug mode...
CMake Error at /usr/share/cmake-3.18/Modules/FindPkgConfig.cmake:545 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake-3.18/Modules/FindPkgConfig.cmake:733 (_pkg_check_modules_internal)
flutter/CMakeLists.txt:25 (pkg_check_modules)Building Linux application...
Exception: Unable to generate build files
报错未明确指出缺失的具体依赖包,可按以下步骤排查解决:
直接查看依赖定义
打开项目中的flutter/CMakeLists.txt文件,定位到第25行的pkg_check_modules指令,该行会列出Flutter Linux构建所需的所有依赖包(比如常见的gtk+-3.0、jsoncpp等)。手动验证依赖是否存在
使用pkg-config工具逐个检查这些依赖,例如检查GTK3:pkg-config --exists gtk+-3.0 && echo "已安装" || echo "缺失"若返回“缺失”,则安装对应的包(Ubuntu/Debian系用
sudo apt install libgtk-3-dev)。安装Flutter Linux官方基础依赖
直接安装Flutter官方要求的Linux构建依赖,覆盖大部分缺失场景:sudo apt-get install clang cmake git ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev升级CMake版本
报错中使用的CMake 3.18版本较旧,部分场景下不会打印缺失的包名。升级到3.20及以上版本,不仅能修复该信息缺失问题,也能兼容新版本Flutter的构建要求:# Ubuntu/Debian系通过PPA升级 sudo add-apt-repository ppa:kitware/cmake sudo apt update && sudo apt upgrade cmake
内容的提问来源于stack exchange,提问作者JNB

