当前位置: 首页 > news >正文

rust unresolved import‘xxx‘

rust语言的cargo.toml引入

url = { version = "2.5.0", optional = true }

最后在编译阶段就直接报错了

error[E0432]: unresolved import `url`
 --> src/handler/ws.rs:3:5
  |
3 | use url::Url;
  |     ^^^ use of undeclared crate or module `url` 

后来我在尝试中,直接导入

url="2.5.0" 

就可以了,最后我谷歌一番,才知道在 Rust 的 Cargo 构建系统中,optional 是一个用于指定依赖项是否是可选的属性。当你在 Cargo.toml 文件中定义依赖项时,可以使用 optional 标志来标记某个依赖项是可选的。当一个依赖项被标记为可选时,它不会被默认包含在构建过程中,除非显式地启用了该依赖项。这使得你可以根据需要选择性地添加或删除一些功能或特性。

可以通过在命令行中使用 --features 标志来启用可选的依赖项:

cargo build --features url

上述命令将下载、构建和包含名为 url 的依赖项。

通过使用 optional 属性,你可以根据需要更灵活地管理你的项目的依赖项。

知识补充:

在 Rust 的 Cargo.toml 文件中,除了 optional 属性之外,还有一些其他常用的依赖项属性。以下是一些常见的依赖项属性:

  1. version:指定依赖项的版本号或版本范围。
  2. path:指定一个本地路径作为依赖项。
  3. git:指定依赖项的 Git 仓库地址和版本。
  4. branch/tag/rev:与 git 属性一起使用,指定使用的分支、标签或提交哈希。
  5. registry:指定依赖项来自的注册表。

除了这些常见的属性之外,还有许多其他属性可以用于细化依赖项的声明,例如 features、default-features、package、replace 等。每个属性都有不同的作用,使得 Cargo.toml 文件可以灵活地描述项目的依赖关系和构建选项。

具体的其他的属性用法,可以参考:Features - Cargo 手册 中文版

相关文章:

  • IP和DNS不在同一地区原因
  • Android之Apk相关操作,以32位或64位运行apk,区分apk支持CPU架构的办法
  • 【Java系列】详解多线程(二)——Thread类及常见方法(下篇)
  • Visual Studio Code中tasks.json全局任务命令选项CommandOptions配置介绍
  • Python-docx 深入word源码 自定义字符间距
  • 【JavaWeb笔记】单选框,结合Servlet
  • CGAN笔记总结第二弹~
  • AntDB数据库参加ACDU中国行杭州站,分享数据库运维实践与经验
  • golang实现同步阻塞、同步非阻塞、异步非阻塞IO模型
  • Python面向对象三大特征(python系列20)
  • 数据结构和算法 - 数组
  • C++11(下)
  • Vue引入字节跳动图标库
  • 基于Spring+Spring boot的SpringBoot在线电子商城管理系统
  • DevOps搭建(五)-JDK安装详细步骤
  • 时间复杂度分析经典问题——最大子序列和
  • [译]如何构建服务器端web组件,为何要构建?
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • canvas绘制圆角头像
  • CentOS从零开始部署Nodejs项目
  • create-react-app项目添加less配置
  • Facebook AccountKit 接入的坑点
  • JAVA并发编程--1.基础概念
  • laravel 用artisan创建自己的模板
  • Linux Process Manage
  • PHP的Ev教程三(Periodic watcher)
  • php面试题 汇集2
  • Redis字符串类型内部编码剖析
  • Sass 快速入门教程
  • Yii源码解读-服务定位器(Service Locator)
  • 入口文件开始,分析Vue源码实现
  • 设计模式(12)迭代器模式(讲解+应用)
  • 推荐一个React的管理后台框架
  • 译自由幺半群
  • python最赚钱的4个方向,你最心动的是哪个?
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #android不同版本废弃api,新api。
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (4)(4.6) Triducer
  • (C++17) std算法之执行策略 execution
  • (分类)KNN算法- 参数调优
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (转)创业家杂志:UCWEB天使第一步
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转)我也是一只IT小小鸟
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .net 无限分类
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .NET中使用Protobuffer 实现序列化和反序列化
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @RequestMapping 的作用是什么?