You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ink开发Polkadot质押合约时cargo contract build报错排查

错误原因及解决办法

这个错误的核心原因是你的Cargo.toml配置存在冲突:

  • 你同时为项目设置了二进制目标(通过[[bin]]区块)和crate-types = ["cdylib"]。
  • cdylib是编译动态库的配置,这是ink合约的要求(ink合约本质是Rust库,并非可执行二进制程序);但一旦定义了[[bin]],Cargo会将项目识别为二进制可执行项目,这类项目不允许设置crate-types字段,两者直接冲突。

解决步骤

  • 打开Cargo.toml文件,找到并移除所有[[bin]]相关的配置区块。
  • 确保[lib]区块配置正确,示例如下:
    [lib]
    name = "polkadot_staking_exchange"
    crate-types = ["cdylib", "rlib"]
    
  • 检查lib.rs文件,确保没有定义main函数(二进制项目的入口函数),ink合约仅需通过#[ink::contract]宏定义合约逻辑即可。

内容的提问来源于stack exchange,提问作者gauthami vijay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 20:12:02