今天使用Cargo管理依赖,发现指定的依赖和实际构建的依赖对不上:
如图,我指定了solana-program = "1.9.5",但是实际构建的时候依赖的是1.10.2,百度了很久发现没有任何有效信息,然后google了一下,找到了和我遇到一样问题的兄弟(这说明Rust在国内还是比较小众的):
how to specify the exact version of a dependency
从回答中我们知道,solana-program = "1.9.5"这种写法,Cargo会优先使用本地的solana-program最新版本,如果要指定用1.9.5,需要使用solana-program = "= 1.9.5"。从cargo的教程我们也可以看到(指定依赖项 - Cargo 中文文档),确实可以使用"="指定版本,只是文档没有说明不用"="的行为,特别是会优先使用本地最新版本的行为,让人感到疑惑。
下面是更新后的build: