macOS下执行Makefile报make: flutter: No such file or directory如何解决?
问题根本原因
Make 在 macOS 环境下运行时,默认不会继承交互式终端的 PATH 环境变量:
- 你在
/etc/paths或者用户目录下的.zshrc/.bashrc中配置的 Flutter 路径,仅会在打开终端这类交互式 Shell 场景下加载生效 - 执行
make命令时,系统会启动非交互式 Shell 执行 Makefile 中的指令,该场景下不会加载上述自定义的路径配置,因此找不到flutter可执行文件
解决方案
你可以任选以下任意一种方式解决:
- 方法1:Makefile 中直接使用 Flutter 绝对路径调用
首先在当前终端执行which flutter拿到 Flutter 可执行文件的绝对路径,比如返回结果为/Users/me/flutter/bin/flutter,直接修改 Makefile 内容即可:run-profile: /Users/me/flutter/bin/flutter run -t lib/main_dev.dart --profile - 方法2:在 Makefile 开头显式声明 PATH 变量
直接把 Flutter bin 目录添加到 Makefile 全局 PATH 中:PATH := /Users/me/flutter/bin:$(PATH) run-profile: flutter run -t lib/main_dev.dart --profile - 方法3:执行 make 命令时主动传递当前终端的 PATH 变量
执行命令时手动传入当前 Shell 的 PATH:PATH=$PATH make run-profile
内容的提问来源于stack exchange,提问作者Kristi Jorgji
相关产品推荐
相关产品推荐

