【Rust自学】14.6. 安装二进制crate
14.6 安装二进制 crate14.6.1 从 crates.io 安装二进制 crate通过cargo install命令可以从 crates.io 安装二进制 crate。这并不是为了替换系统包它应该是 Rust 开发人员安装其他人共享工具的便捷方式。它的限制是只能安装具有二进制目标binary target的 crate。binary target 是一个可执行程序由拥有src/main.rs或其它被配置为二进制 crate 的包生成。既然有 binary target 这个概念那就会有 library target 这个概念。library target库目标无法单独运行。通常README.md文件里会有关于 crate 的描述会告诉你这个 crate 是否有 library target、是否有 binary target或者两者都有。14.6.2cargo installcargo install安装的二进制文件存放在主目录下的bin文件夹中。如果你使用默认的rustup配置安装 Rust那么二进制存放目录是$HOME/.cargo/bin。为了让cargo install所安装的程序能够直接执行需要确保该目录在环境变量$PATH中。例如在第 12 章中我们提到了grep工具的 Rust 实现称为ripgrep用于搜索文件。要安装ripgrep我们可以运行$ cargo install ripgrep Updating crates.io index Downloaded ripgrep v13.0.0 Downloaded 1 crate (243.3 KB) in 0.88s Installing ripgrep v13.0.0 ...... Compiling ripgrep v13.0.0 Finished release [optimized debuginfo] target(s) in 3m 10s Installing ~/.cargo/bin/rg Installed package ripgrep v13.0.0 (executable rg)中间省略了一部分但大致就是这样。倒数第二行写到了程序被安装在~/.cargo/bin/rg。在终端使用echo $PATH就可以查看该目录是否在环境变量中。14.6.3 使用自定义命令扩展 CargoCargo 被设计为可以使用子命令来扩展。举个例子如果$PATH中的某个二进制文件名为cargo-something你可以通过运行cargo something来运行它就像它是一个 Cargo 子命令一样。当你运行cargo --list时也会列出像这样的自定义命令。能够使用cargo install来安装扩展然后像内置的 Cargo 工具一样运行它们这是 Cargo 设计的一个非常方便的好处。

相关新闻

【Rust自学】15.1. 使用Box<T>智能指针来指向堆内存上的数据

【Rust自学】15.1. 使用Box<T>智能指针来指向堆内存上的数据

15.1 使用Box T 智能指针来指向堆内存上的数据 15.1.1 Box<T> Box<T> 可以被简单地理解为一个箱子。它是最简单的智能指针&#xff0c;允许你把数据存储在堆上&#xff0c;而不是栈上。 具体实现是&#xff1a;Box<T> 在栈上有一小块内存&#xff0c;存放指向…

2026/10/18 10:33:08 阅读更多 →
【Rust自学】15.3. Deref trait Pt.2:隐式解引用转化与可变性

【Rust自学】15.3. Deref trait Pt.2:隐式解引用转化与可变性

15.3 Deref trait Pt.2&#xff1a;隐式解引用转化与可变性 15.3.1 函数和方法的隐式解引用转化 隐式解引用转化&#xff08;deref coercion&#xff09;是为函数和方法提供的一种便捷特性。 它的原理是&#xff1a;假如类型 T 实现了 Deref trait&#xff0c;那么解引用转化…

2026/10/18 10:33:44 阅读更多 →
【Rust自学】15.4. Drop trait:告别手动清理,释放即安全

【Rust自学】15.4. Drop trait:告别手动清理,释放即安全

15.4 Drop trait&#xff1a;告别手动清理&#xff0c;释放即安全 15.4.1 Drop trait 的意义 如果某个类型实现了 Drop trait&#xff0c;就可以让程序员自定义值离开作用域时发生的操作。例如释放文件或网络资源。 在某些语言中&#xff08;比如 C/C&#xff09;&#xff0c;对…

2026/10/17 18:12:31 阅读更多 →

最新新闻

Aspen Plus Skill自动化更新系统设计与实现

Aspen Plus Skill自动化更新系统设计与实现

1. 项目概述&#xff1a;当流程模拟工程师开始写“自动更新脚本”你有没有过这样的经历&#xff1a;凌晨两点&#xff0c;盯着Aspen Plus界面里那个灰掉的“Update Skill”按钮发呆&#xff1f;刚改完一个热力学模型参数&#xff0c;想顺手把配套的Skill脚本同步更新到最新版&a…

2026/10/18 13:28:00 阅读更多 →
Java地理位置定位系统:NMEA解析、GeoHash+RTree空间索引与离线围栏判定

Java地理位置定位系统:NMEA解析、GeoHash+RTree空间索引与离线围栏判定

简介&#xff1a;这是一份面向高校计算机专业本科生的Java课程设计实践资源&#xff0c;聚焦地理位置定位功能开发&#xff0c;帮助学习者掌握Java GUI、数据库交互与GIS地图集成等综合技能。资源包含73个文件&#xff0c;主体为15个Java源码&#xff08;含核心业务逻辑与Swing…

2026/10/18 13:28:00 阅读更多 →
多种小游戏合集开发复盘:架构、玩法与优化实践

多种小游戏合集开发复盘:架构、玩法与优化实践

最近我把手头零散写了很久的多个休闲小游戏统一收拢成了一个合集项目&#xff0c;项目标题就叫“多种小游戏”。起因很朴素&#xff1a;时间碎片化的玩家希望一个页面里能随时换着玩&#xff0c;我自己也想借这个机会把以前东一榔头西一棒子写的小游戏代码从逻辑到交互梳理清楚…

2026/10/18 13:28:00 阅读更多 →
Python自动化生成深度学习课件PPT:可复现的工程化实践

Python自动化生成深度学习课件PPT:可复现的工程化实践

简介&#xff1a;这是一份面向深度学习初学者与进阶学员的Python课件PPT&#xff0c;系统梳理从编程基础到主流模型再到行业落地的完整知识链路&#xff0c;帮助读者建立理论认知并衔接工程实践。内容覆盖Python语法与流程控制、数据清洗与标准化、线性回归、神经网络结构与激活…

2026/10/18 13:28:00 阅读更多 →
深度学习入门:从课件PPT到NumPy手写神经网络与PyTorch实战

深度学习入门:从课件PPT到NumPy手写神经网络与PyTorch实战

简介&#xff1a;这份《深度学习原理与应用》课件PPT面向高校学生、自学者及希望系统入门人工智能的开发者&#xff0c;帮助其建立从数学基础到经典模型的完整知识框架。课件共十一章&#xff0c;从深度学习概述讲起&#xff0c;依次覆盖线性代数、概率论与统计学、微积分与优化…

2026/10/18 13:28:00 阅读更多 →
Linux下NVML初始化失败:驱动与库版本不匹配的排查与修复指南

Linux下NVML初始化失败:驱动与库版本不匹配的排查与修复指南

1. 这个报错到底在说什么Failed to initialize NVML: Driver/library version mismatch这行字&#xff0c;但凡在 Linux 上跑过深度学习训练、折腾过显卡直通、或者手贱升级过一次系统内核的人&#xff0c;大概率都见过。它的字面意思很直白&#xff1a;NVML 初始化失败&#x…

2026/10/18 13:26:59 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →