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

Rust使用extern crate时报can't find crate编译错误如何解决

问题原因

该报错核心是你在二进制包的main.rs中尝试将自身作为外部crate引入,不符合Rust的包结构规则。你当前Cargo.toml定义的包名为reddwarf_music,如果项目仅存在src/main.rs文件,只会生成二进制产物,没有对应的库crate可供extern crate引入。
Diesel官方文档的示例默认将schema、数据模型等公共逻辑放在库侧,因此才会出现用包名引入内部模块的写法。

解决步骤
  • 首先在src目录下新建lib.rs文件,将Diesel生成的公共模块统一在lib侧导出:比如你运行diesel setup后生成的src/schema.rs,需要在lib.rs中添加pub mod schema;完成公开导出,你的自定义数据模型也同理在lib侧做公开导出。
  • 删掉main.rs中的#[macro_use] extern crate reddwarf_music;代码,你使用的2018 edition Rust不需要显式写extern crate引入自身的库crate。
  • 之后直接在main.rs中使用use reddwarf_music::schema::posts::dsl::*;即可正常引用库侧导出的模块。

注意:请确保你已经正确安装对应数据库功能的diesel_cli,且执行过diesel setup生成了src/schema.rs文件,否则调整结构后还会报模块不存在的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:21:03