错误cargo build sbf无法获取包元数据:“cargometadata”退出并出现错误:错误:无法加载工作区成员的清单

问题描述 投票:0回答:2

我尝试建立一个锚定项目

anchor init AnchorProject

cd AnchorProject

anchor build

然后出现这个错误!

admin@Desktop MINGW64 /d/folder_1/MY_Project/AnchorProject (main)
$ anchor build

Warning: cargo-build-bpf is deprecated. Please, use cargo-build-sbf

cargo-build-bpf child: 
C:\Users\admin\.local\share\solana\install\active_release\bin\cargo-build-sbf.exe --arch bpf

[2022-09-23T17:22:59.130309300Z ERROR cargo_build_sbf] Failed to obtain package metadata: 

`cargo metadata` exited with an error: error: failed to load manifest for workspace member

 `\\?\D:\folder_1\MY_Project\AnchorProject\programs\*`
    
    Caused by:
      failed to read `\\?\D:\folder_1\MY_Project\AnchorProject\programs\*\Cargo.toml`

    Caused by:
      The filename, directory name, or volume label syntax is incorrect. (os error 123)

而且我不明白上面消息中的问号(?)是什么意思!

注意

我已经解决了元数据的问题,但是当我返回构建项目时,出现了另一条消息

$anchor build

error: no such subcommand: build-bpf 

Did you mean build-sbf?

当我尝试编写cargo-build-bfs时,还会出现另一条消息

$cargo-build-bfs

info: uninstalling toolchain 'sbf'
info: toolchain 'sbf' uninstalled
   Compiling getrandom v0.1.16
   Compiling memchr v2.5.0
   Compiling bv v0.11.1
   Compiling quote v1.0.21
   Compiling rustversion v1.0.9
   Compiling blake3 v1.3.1
error: target is not supported, for more information see: https://docs.rs/getrandom/#unsupported-targets
   --> src\lib.rs:267:9
    |
267 | /         compile_error!("\
268 | |             target is not supported, for more information see: \
269 | |             https://docs.rs/getrandom/#unsupported-targets\
270 | |         ");
    | |__________^

error[E0433]: failed to resolve: use of undeclared crate or module `imp`
   --> src\lib.rs:291:5
    |
291 |     imp::getrandom_inner(dest)
    |     ^^^ use of undeclared crate or module `imp`

For more information about this error, try `rustc --explain E0433`.                          
error: could not compile `getrandom` due to 2 previous errors                                
warning: build failed, waiting for other jobs to finish...
                                                                                              ```
rust anchor rust-cargo solana anchor-solana
2个回答
0
投票

Solana 程序不能包含

rand
,因为这会导致不确定的结果。程序无法执行 I/O(文件、屏幕、url、网站、rand 等)

参见 Rust 程序构建限制


0
投票

我是 Solana 和主播的新手。现在我面临着您上面提到的问题 - 元数据问题。请告诉我你是怎么解决的?

© www.soinside.com 2019 - 2024. All rights reserved.