首页 > 其他分享 >Rust之cargo简单熟悉

Rust之cargo简单熟悉

时间:2023-11-09 16:33:36浏览次数:36  
标签:cargo 管理器 rustc crate 编译 熟悉 Rust


Rust之cargo简单熟悉
还记得上一篇文章 –《Rust简单开发环境搭建》中,helloworld的例子是用cargo来管理的,今天我们就来聊聊这个cargo

cargo是什么?为什么需要这个cargo?
cargo是Rust的包管理器,Rust的包分为2种,一种是二进制可执行的包,一种是库的包,默认情况下就是第一种binary包

在Rust里,一个库或者可执行程序叫做一个crate,一般简单情况下,我们可以直接使用Rust的编译器rustc来编译这个crate,但如果编译这个crate需要许多编译参数,包含许多依赖,或者需要其他构建工具,手动去操作就会很麻烦,而且也很难管理,这样包管理器cargo就应运而生了

cargo主要做以下4个工作:

引入两个包含包信息的元数据文件
获取并构建包的依赖项
用正确的参数调用rustc或其他构建工具来生成包

.......

作者: Shell

标签:cargo,管理器,rustc,crate,编译,熟悉,Rust
From: https://blog.51cto.com/winter91/8284478

相关文章

  • Rust简单开发环境搭建
    Rust简单开发环境搭建Rust简单开发环境搭建整个环境搭建默认在X86的Linux环境(Ubuntu)下进行环境搭建首先,要熟悉下Rust的几个基本东东:rustup:Rust版本管理器cargo:Rust包管理器rustc:Rust编译器安装使用官方推荐的rustup方式进行安装,使用下面的一条命令即可:SHELLcurl......
  • 24. 从零用Rust编写正反向代理,细说HTTP行为中的几种定时器
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmpro......
  • 20231107学习总结-大型数据库-实验1.熟悉常用的Linux操作和Hadoop操作
    实验1熟悉常用的Linux操作和Hadoop操作1.实验目的Hadoop运行在Linux系统上,因此,需要学习实践一些常用的Linux命令。本实验旨在熟悉常用的Linux操作和Hadoop操作,为顺利开展后续其他实验奠定基础。2.实验平台(1)操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04);(2)Hadoop版本:3.1.3。3.......
  • 利用Rust编程语言和tide库采集搜狗图片
    今天给大家带来一个用Rust编程语言和tide库编写一个爬虫程序,主要用于采集搜狗图片。一起来学习一下吧。```rust//导入所需的库usestd::io::{BufRead,BufReader};usestd::net::TcpStream;usestd::sync::mpsc;//定义一个消息通道来传递爬取的结果let(sender,receiver)......
  • Rust 在可执行文件中嵌入代码版本信息
    缘起我想要最终编译出的可执行文件中包含代码仓库的版本信息fnmain(){println!("HelloRustHub");//gitrev-parse--shortHEAD letcommit_hash="6c1b45f";println!("commit_hash:{}",commit_hash);}为了自动获取这个"6c1b45f"很自然的我们可以......
  • 用Rust和Scraper库编写图像爬虫的建议
    本文提供一些有关如何使用Rust和Scraper库编写图像爬虫的一般建议:1、首先,你需要安装Rust和Scraper库。你可以通过Rustup或Cargo来安装Rust,然后使用Cargo来安装Scraper库。2、然后,你可以使用Scraper库的Crawler类来创建一个新的爬虫实例。3、接下来,你可以使用start方法来启动爬虫并......
  • 23_rust_练习
    练习编码实现一个简单的grep工具。建立项目:>cargonewminigrepCreatedbinary(application)`minigrep`package接收命令行参数usestd::env;fnmain(){//args返回一迭代器,collect将迭代器转换为Vector,需指明类型//args函数无法处理非法Unicode字符,如果......
  • [Rust] 对整形溢出的处理
    1.两种不同模式下的整形溢出坑了个爹的,书上说的没理解清楚,在Rust程序语言设计中文版3.2中提到了,当使用--release参数进行发布模式构建时,Rust不会检测导致panic的整形溢出,这里需要分两种情况考虑:编译期就可以发现的整形溢出程序运行过程中会发生的整形溢出1.1编译阶段如果......
  • 前端开发笔记[5]-rust的webassembly
    摘要基于rust开发webassembly入门,通过rust实现在网页中弹出警告框.rust的webassembly开发方式https://zhuanlan.zhihu.com/p/104299612入门Rust开发WebAssemblyRust编译为WebAssembly在前端项目中使用https://zhuanlan.zhihu.com/p/662991464相对来说,使用Rust开发......
  • 不可靠的 Rust Lifetime Elision
    众所周知,Rust编译器在分析代码的过程中,会对含有引用参数、返回值的函数、方法进行lifetime检查。经历数次版本迭代后Rust编译器发展出了一套惯用规则用于隐式推理lifetime注解(lifetimeelision),从而减小开发者的编写难度,尽可能省略不必要的lifetime注解。由于后文会涉......