Ubuntu构建Flutter应用遇CMAKE_CXX_COMPILER未设置等问题求助
问题梳理
- 开发namer_app示例时,初始项目出现
import 'package:integration_test/integration_test_driver.dart' as driver; target of uri doesn't exist错误;新建项目后该错误消失,但Flutter SDK仍绑定首个项目路径。 - Ubuntu 24.04.1环境下,
flutter doctor误报clang、Chrome未安装(实际已安装)。 - 调试项目时触发CMake错误:
CMAKE_CXX_COMPILER未设置,修改.bashrc路径、安装JRE等操作无效。 - 系统更新后,此前正常运行的项目出现Java/Dart SDK引用异常。
解决方案
1. 修复Integration Test依赖与SDK路径绑定问题
- 处理初始项目的依赖错误:打开项目根目录的
pubspec.yaml,确认dev_dependencies下已添加匹配Flutter SDK版本的integration_test依赖,然后执行flutter pub get更新依赖:dev_dependencies: integration_test: sdk: flutter - 修正SDK路径指向:在VS Code中按
Ctrl+Shift+P调出命令面板,输入Flutter: Change SDK选择正确的Flutter SDK路径;同时检查项目.vscode/settings.json,确保dart.flutterSdkPath配置为实际SDK路径:{ "dart.flutterSdkPath": "/your/actual/flutter/sdk/path" }
2. 修正flutter doctor误报clang、Chrome未安装
- 解决clang误报:执行
sudo apt install clang llvm重新安装,然后运行export PATH="/usr/lib/llvm-17/bin:$PATH"(根据实际安装的llvm版本调整路径),再执行flutter doctor验证。 - 解决Chrome误报:确认Chrome安装路径为
/usr/bin/google-chrome,若路径不符,创建软链接:sudo ln -s /path/to/your/chrome /usr/bin/google-chrome,重启终端后再运行flutter doctor。
3. 解决CMAKE_CXX_COMPILER未设置错误
- 安装完整C++编译环境:
sudo apt install build-essential cmake - 手动指定C++编译器路径:在项目
android/app/build.gradle中添加以下配置:android { externalNativeBuild { cmake { arguments "-DCMAKE_CXX_COMPILER=/usr/bin/g++" } } } - 清除项目缓存后重建:执行
flutter clean→flutter pub get→flutter run。
4. 修复系统更新后的Java/Dart SDK引用问题
- 检查并修复Java环境:执行
java -version和javac -version确认JDK(需安装JDK而非JRE)正常,若未安装则执行sudo apt install openjdk-17-jdk,并在.bashrc中添加环境变量:export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH - 修复Dart SDK引用:执行
flutter doctor -v查看Dart SDK路径是否正确,若异常则在.bashrc中重新配置Flutter SDK路径:export PATH="$PATH:/your/flutter/sdk/path/bin" - 执行
source ~/.bashrc使环境变量生效,重启IDE后重新加载项目。
内容的提问来源于stack exchange,提问作者Brock Sawlor
相关产品推荐
相关产品推荐

