Search code examples
rust-cargosolana

How to fix 'failed to select a version' error when running 'cargo build-bpf' in Solana rust program?


cargo build-bpf failed to run on WSL2 in windows11 [Solana dev]

I am building a simple hello world program on solana. Using : WSL2 Ubuntu LTS 22 on win11 solana-cli 1.13.8 rustc 1.69.0 cargo 1.69.0

Note: "cargo build" runs successfully but not "cargo build-bpf"


First I run cargo build-bpf. It successfully downloaded the bpf-tools in "~/.cache/solana/v1.27" Then it gives me this error error: failed to select a version for the requirement aho-corasick = "^1.0.0"

sriram@Sk:~/local-program$ cargo build-bpf
BPF SDK: /home/sriram/.local/share/solana/install/releases/stable-43daa37937907c10099e30af10a5a0b43e2dd2fe/solana-release/bin/sdk/bpf
cargo-build-bpf child: rustup toolchain list -v

cargo-build-bpf child: cargo +bpf build --target bpfel-unknown-unknown --release
    Updating crates.io index
error: failed to select a version for the requirement `aho-corasick = "^1.0.0"`
candidate versions found which didn't match: 0.7.20, 0.7.19, 0.7.18, ...
location searched: crates.io index
required by package `regex v1.8.3`
    ... which satisfies dependency `regex = "^1.0.3"` (locked to 1.8.3) of package `env_logger v0.8.4`
    ... which satisfies dependency `env_logger = "^0.8.3"` (locked to 0.8.4) of package `solana-logger v1.8.16`
    ... which satisfies dependency `solana-logger = "=1.8.16"` (locked to 1.8.16) of package `solana-frozen-abi v1.8.16`
    ... which satisfies dependency `solana-frozen-abi = "=1.8.16"` (locked to 1.8.16) of package `solana-program v1.8.16`
    ... which satisfies dependency `solana-program = "^1.8.14"` (locked to 1.8.16) of package `local-program v0.1.0 (/home/sriram/local-program)`

My cargo and solana-cli versions are stable up to date


Solution

  • my Cargo.toml file looks like this at first:

    [package]
    name = "local-program>"
    version = "0.1.0"
    edition = "2021"
    
    [features]
    no-entrypoint = []
    
    [dependencies]
    solana-program = "~1.8.14"
    
    [lib]
    crate-type = ["cdylib", "lib"]
    

    I changed the dependency version of solana-program to "1.14.11". This solved my issue. Now its successfully build and deployed.

    Solana-program="1.8.14" does seem to be a compatible version for the latest version of solana-cli and rust. So changing the solana-program to an older version solved my problem.