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

发布到crates.io的crate中main()会被忽略吗?需删除main.rs吗?

发布Rust Crate到crates.io时main.rs的处理方式

不需要删除main.rs,它默认不会被包含在发布到crates.io的包中,除非你在Cargo.toml里做了特殊配置。具体原因和注意事项如下:

  • Cargo默认区分库 crate和二进制 crate:lib.rs是库的入口,对应你要分享的公开结构和文档;而main.rs是默认的二进制目标入口,仅用于本地开发测试。
  • 发布crate时,默认只会打包库相关的代码(lib.rs以及[lib]配置段指定的内容),二进制目标(main.rs对应的可执行文件)不会被纳入发布包。
  • 如果你在Cargo.toml里显式添加了[[bin]]配置段并关联了这个main.rs,那这个二进制目标会被一起发布。但如果只是默认的main.rs(没加[[bin]]配置),就完全不用担心。

额外建议:

  • 保留main.rs完全没问题,它可以继续作为你本地测试的入口,不会影响发布的库代码。
  • 要是怕不小心配置了二进制发布,也可以给[[bin]]段加上publish = false,确保它不会被发布:
    [[bin]]
    name = "your_crate_test_bin"
    path = "src/main.rs"
    publish = false
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 15:25:25