Solana示例项目运行cargo build-bpf报no such subcommand: +bpf错误
问题核心原因
该报错由两种常见情况触发:
- 1.18版本及以上的Solana工具链已全面将BPF相关构建能力替换为SBF,旧的
+bpf参数、cargo build-bpf命令已被官方弃用 - 系统同时存在rustup管理的原生Rust工具链和Solana自带的工具链,调用cargo时优先级冲突,导致Solana专属的构建子命令无法被识别
解决方案
- 优先使用新版官方推荐的SBF构建命令,进入Rust程序目录直接执行:
cargo build-sbf - 若需要兼容旧项目的
build-bpf调用逻辑,可指定Solana自带的cargo路径执行命令,避免调用rustup管理的原生cargo:- 复制
which cargo-build-bpf返回的完整路径,去掉末尾的cargo-build-bpf得到Solana工具集的bin目录,例如返回结果为/Users/xxx/.local/share/solana/install/active_release/bin/cargo-build-bpf,对应bin目录为/Users/xxx/.local/share/solana/install/active_release/bin/ - 执行时带上完整路径即可:
/Users/xxx/.local/share/solana/install/active_release/bin/cargo build-bpf
- 复制
- 若执行仍报错,可移除rustup中冲突的bpf工具链项:
rustup toolchain remove bpf
内容的提问来源于stack exchange,提问作者abhishek
相关产品推荐
相关产品推荐

