首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

“`cargo”会下载在别人电脑上编译的二进制文件吗?

cargo 是 Rust 编程语言的官方包管理器和构建工具。它主要用于下载、构建和管理 Rust 项目的依赖关系和编译过程。

当使用 cargo 下载依赖并构建项目时,它会自动下载并编译源代码,生成可执行的二进制文件。这些二进制文件通常只会存在于本地计算机上,而不会自动下载到其他计算机上。

然而,如果你将生成的二进制文件(例如可执行文件)共享给其他人,并且他们的计算机上已经安装了 Rust 环境,那么他们可以直接运行这个二进制文件,而无需重新编译。这是因为 Rust 的编译器会将二进制文件静态链接到了系统的运行时库,使其具备了跨平台的可执行性。

总结起来,cargo 不会直接下载在别人电脑上编译的二进制文件,但可以通过共享生成的二进制文件来使其他人能够直接运行该文件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Rust学习笔记:1.2 两个典例及常用命令

参数 这行代码以 ; 结尾 编译和运行时单独两步 运行 Rust 程序之前必须先编译,命令为:rustc 源文件编译成功后,会生成一个二进制文件 Windows 还会生成一个 .pdb...文件,里面包含调试信息 Rust 是 ahead-of-time 编译语言 可以先编译程序,然后把可执行文件交给别人运行(无需安装 Rust) rustc 只适合简单 Rust 程序 Hello,...Cargo Cargo Cargo 是 Rust 构建系统和包管理工具 构建代码、下载依赖库、构建这些库等 安装 Rust 时候自动安装 Cargo cargo --version xinggongwuyue...项目目录中创建项目:cargo new hello_cargo 项目名也是 hello_cargo 创建一个新目录 hello_cargo Cargo.toml src 目录 main.rs...Cargo 项目 cargo run cargo run:编译代码 + 执行结果 如果之前编译成功过,且源码没有改变,那么就会直接运行二进制文件 xinggongwuyue@DioxideCN-MacBook-Air

40210

Rust学习笔记之Rust环境配置和入门指南

命令规则,Rust文件总是以.rs扩展名结尾。 fn main(){ println!("Hello,Rust"); } 然后保存文件并回到「终端窗口」。...「一旦编译成功,就会获得一个二进制可执行文件」。 上面的步骤,其实和我们平时使用js是不一样。js是「动态语言」,在编译之后就会立即运行。...Cargo以hello_cargo名字来创建项目目录并放置它生成文件。...❝Cargo默认把「所有的源代码文件」保存到src目录下,而「项目根目录」只被用来存储诸如README文档/许可声明/配置文件等与源代码「无关」文件。...它生成可执行文件会被放置target/release目录下,而不是之前target/debug目录下。 这种模式以更长编译时间为代价来优化代码,从而使代码拥有更好「运行时性能」。

97010

一款开源替代 ls 工具你值得拥有!

终端屏幕不再是瓶颈:exa 功能强大,比 ls 要友好,输出结果更快; 颜色:exa 大量使用颜色; 不与 ls 命令冲突 EXA 特征 色彩:文件类型列表以及如何区分文件; 网格视图:与终端窗口大小相同网格中显示文件...MacOS MacOS安装exa是使用Homebrew,Homebrew软件包管理器提供了exa二进制文件,也可以手动安装。...exa $ cargo build --release 一个可运行二进制文件将出现在target/release目录中,可通过该二进制文件复制到您目录中来永久安装 exa $PATH。...采用 Cargo 安装 如果安装了最新版本Cargo(至少是Cargo v0.5.0),则可以使用它来安装exa $ cargo install exa Cargo构建exa二进制文件将放置$HOME...如使用 Linux 发行版不支持通过以上方式安装,可通过官方 GitHub 仓库Releases页面下载编译二进制版本进行使用。

1.6K10

【Rust学习】01_入门

;}打开终端, Linux 或 macOS ,输入以下命令以编译并运行文件:$ rustc main.rs$ ./mainHello, world! Windows ,输入命令 ....编译成功后,Rust 输出一个二进制可执行文件。...请注意,这次我们没有看到指示 Cargo 正在编译 hello_cargo 输出。Cargo 发现文件没有更改,因此它没有重建,而只是运行二进制文件。...因此,许多 Rustaceans 在编写程序时会定期运行 cargo check 以确保其编译。然后,当它们准备好使用可执行文件时,它们运行 cargo build 。...让我们回顾一下到目前为止我们对 Cargo 了解:我们可以使用 cargo new 创建一个项目我们可以使用 cargo build编译一个项目我们可以一步到位地构建 cargo run 和运行一个项目我们可以不生成二进制文件情况下构建一个项目来检查错误

6800

Rust跨平台编译

在他们写完功能后,他们就想要把脚手架编译二进制文件,并且通过直接访问或者设置.bashrc等全局访问。更有甚者,他们还想让自己朋友使用。实际操作过程中,就会发生一个问题。...A同学用Mac构建了一个工具,但是她想让B同学Windows环境使用。此时就会发生问题,我们都知道Windows和Mac由于系统架构不同,它们环境下编译二进制文件是「不互通」。...如图所示,通过current_platform返回值和rustc值是匹配。大家可以自己电脑运行上面的代码。 5....从上面的输出中可以看到,编译.exe文件位于target/x86_64-pc-windows-gnu/debug。我们可以将其复制到Windows机器运行,显示预期输出。...我们Mac运行cargo test,会得到这样输出: 要在Windows运行测试,语法与运行可执行文件非常相似: cross test --target x86_64-pc-windows-gnu

25910

Rust 开发命令行工具(中)

最快:cargo publish 使用cargo发布应用程序是最简单方法。我们还记得我们如何将外部依赖项添加到项目中cargo从其默认「包管理器」crates.io[4]下载它们。...与库不同,cargo会在运行cargo build(或类似的命令)时为我们下载编译库,我们需要明确告诉它要安装二进制文件。 使用cargo install 可以实现这一点。...默认情况下,它会下载crate,编译其中包含所有二进制目标(以release模式进行,所以可能需要一些时间),并将它们复制到~/.cargo/bin/目录中。...当我们包含名为f789二进制文件项目运行cargo build时,我们将得到一个名为f789二进制文件。...如果我们Windows计算机上运行cargo build,我们不会得到默认情况下在Mac运行二进制文件

30620

​Substrate 环境安装提速文档

开发 substrate,不一定非要用最新 Rust 版本(但是太老估计也不行),nightly 版本几乎每日构建,所以你每执行一次 rustup update,就可能重新下载构建版本,比较费时.../target/release/subkey ~/.cargo/bin 说明: 官方提供脚本中,把 substrate 代码下载下来后,执行了一次,....和 subkey 是用 stable 版本编译编译时,指定 --target-dir 可以充分共享编译中间文件(缓存); 下载代码,手动 build, 然后 cp,这样方式,主要是可以充分利用编译缓存.../target 或 cargo build --release --target-dir=../target 编译二进制文件 ../target/ 中。...这样能充分利用前面的缓存,使得编译可以大大加速。如果前面没有缓存,这样操作,也可以不同项目间共享编译缓存。 完结。

1.1K30

【投稿】如何制作一个*-syscrate

可选从源码编译。 导出 C 头文件。 sys crate 不 该做事 别在 Cargo 专用输出目录 (OUT_DIR)之外写文件。需要强调是,也别尝试系统安装什么包。...这对可用性是极大提升,因为用户跑了 cargo build 之后,总能获得能运行东西,而非报错:包查找失败、需要安装依赖、需要设置搜索路等等。 代码下载就有点棘手了,最好办法就是避免下载。...为了避免别人代码在你 crate git 仓库中再重复一份(译者注:跟随上游同步造成大量非 Rust 文件变更),你可以把 C 代码添加为 git submodule。...不幸是,Cargo crate(以及 crates.io)并不适合二进制分发。...交叉编译 Rust 能为当前平台之外系统构建执行文件和类库,例如: macOS 构建程序,或者64位系统构建32位类库。 你 build.rs 程序可能跑在编译环境之外平台上。

1.4K40

cargo-offline 命令

最理想使用模型 仅首次编译·或·依赖项变更时,cargo命令才【连线】编译与同步本地crates.io-index索引清单 —— 有限且可控“访问国外网站”还是可以经济承受。...工作原理 cargo-offline命令 透传所有命令行参数给底层cargo指令 寻找距离cargo-offline执行目录最近Cargo.toml文件,无论该配置文件 是【工作区workspace...被toml crate编辑过Cargo.toml文件,它内部 程序·额外地依赖cargo_toml crate。所以,编译输出二进制文件更大那么一点点儿。...少一个程序依赖项 避免开启【不稳定feature】 即,与Cargo.toml文件同目录cargo-offline-config.toml文件。目前,此文件名是代码内被硬编码。...**即, 以Cargo features作为编译条件 根据不同决策选择 编译输出不一样二进制行可执行文件作为结果。 安装 此命令行工具crate已经被发布至crates.io包仓库。

80350

Cargo Package 离线编译策略

与CI系统集成方式(比如,Jenkins) 首先,cargo vendor命令需要由 @程序员,个人电脑代码提交前,执行一次。于是,vendor文件夹出现。...在打包编译过程中, 业务代码 依赖源码 Cargo.toml .cargo/config.toml Jenkinsgit clone到上述所有文件,包括: cargo build命令也不需要--offline...首先,cargo fetch命令需要由 @CI管理员,Jenkins机器启动打包jobs以前,连网执行一次。...--no-delete不删除一次执行cargo vendor时留下vendor文件夹。...番外篇 虽然上面讲了那么多,但其实仅只绕过了【依赖项源码下载耗时环节。但是,cargo打包编译慢,又何止于网络慢,编译本身也是“重灾区”。

1.3K20

【Rust日报】 2019-05-08:Rust并发实践研究

---- 尝试Cloudsmith发布你crate #cloudsith #registry Cloudsmith是Puppet Labs旗下DevOps平台,目前支持Cargo。...他们代码库concacheGitHub公开,是Rust语言中最快并发HashMap之一,可以帮助降低并发程序中瓶颈。...最后可以统一通过cargo test来完成测试。 gentest另一个好处是,因为每个测试只是一个html文件,只需打开文件就可以浏览器中显示它。...Read More ---- 使用自定义工具链解决Rust和Glibc问题 #glibc Rust和Glibc动态链接时候可能失效,该文作者建议使用自定义工具链来解决此问题。...依赖于大型JavaScript代码库导致网站启动缓慢 - 通常速度慢得令人无法接受。这是因为存在两个瓶颈:解析和字节码编译JavaScript。不幸是,浏览器几乎达到了两种操作效率峰值。

1.1K30

Rust开发环境与工具

你可能注意到插件市场中存在一个标了小星星名字就叫 Rust 插件, 它下载量与安装量都远远高于 rust-analyzer, 那么为什么不选择使用它呢?...体验, rust-analyzer 要远远好于 rls. ---- Hello World Cargo 是 Rust 默认项目管理工具, 它几乎贯穿你整个 Rust 开发周期, 包括项目的创建...使用如下命令可以创建一个新 Rust 工程,rust-learn为工程名称: $ cargo new rust-learn Cargo 默认携带 --bin 参数, 这意味着该项目是一个二进制程序....test 运行测试用例 cargo check 检查项目代码, 由于 Rust 编译较慢, 因此开发中常用 check 代替 build 命令 cargo doc 生成项目文档 cargo publish...: $ rustup component add rustfmt 项目根目录输入以下命令, 自动格式化项目内全部 Rust 源文件: $ cargo fmt

97720

我们为什么选择Rust开发顶尖实时通信产品?

我们将不同二进制文件用于 tonari 系统不同部分,并且每个二进制文件都位于 binaries 中。...并非以“正确方式”编写代码往往非常显眼,并且很容易在审核中挑出来,往往是由 cargo clippy 自动识别出来。 实际,这意味着新工程师可以快速开始贡献可用于生产代码。...代码风格指南已死,rustfmt 万岁 体验过狂野开发人生?提交代码之前,我们没有必须阅读代码样式指南文件。我们不需要这种东西。我们只是强制执行 rustfmt。...为了缩短配置项构建时间,我们将 target 和.cargo 目录缓存在 Cloud Storage 中,以便下次可以下载并增量构建。...著名 xkcd 漫画讽刺说等待 Rust 代码编译时可以去喝咖啡休息一阵儿,这是很真实。例如,我们代码库大约需要 8 分钟才能在中等性能笔记本电脑以非增量方式完成编译,但实际情况可能更糟。

1.4K20

WebAssembly详解及其使用案例

根据WebAssembly FAQ描述:移动设备,对于很大代码库,asm.js仅仅解析就需要花费20-40秒,而实验显示WebAssembly加载速度比asm.js快了20倍,这主要是因为相比解析...WABT工具包支持将二进制WebAssembly格式转换为可读文本格式。其中wasm2wast命令行工具可以将WebAssembly二进制文件转换为可读S表达式文本文件。...编译二进制wasm模块代码 (hello.wasm) 一个包含了用来原生C函数和JavaScript/wasm之间转换胶水代码JavaScript文件 (hello.js) 一个用来加载,...编译,实例化你wasm代码并且将它输出在浏览器显示一个HTML文件 (hello.html) 调用C++中方法 hello.c #include <emscripten/emscripten.h...1.安装Rustup Rustup是一个命令行应用,能够下载并在不同版本Rust工具链中进行切换 brew install cargo curl https://sh.rustup.rs -sSf

4.1K90

听GPT 讲Rust Cargo源代码(4)

这个结构体主要用于与文件时间戳比较,以确定是否需要进行重新编译。 ShellExt trait:这是一个扩展trait,扩展了Shell类型。Shell是一个用于操作系统执行命令工具。...Cargo根据配置生成正确crate文件,以满足用户需求。...总之,cargo/src/cargo/core/compiler/standard_lib.rs文件Rust Cargo作用是处理确定、下载、构建和链接Rust标准库相关任务。...这些报告和诊断信息可以帮助开发人员了解迁移到未来版本时可能遇到兼容性问题,并提供解决方法。...下面将对该文件详细功能进行介绍。 首先,构建项目时,Cargo需要了解项目的依赖关系,以便正确地构建和管理这些依赖。Cargo使用依赖关系信息来确定哪些包应该被下载编译和链接到项目中。

7310

听GPT 讲Rust Cargo源代码(2)

执行构建操作,根据项目中构建配置(如build.rs文件)和依赖关系,编译生成crate二进制文件。 将生成crate二进制文件打包成一个tarball文件,同时生成一个压缩gzip文件。...构建逻辑:rustc命令主要功能是将Rust代码编译二进制可执行文件或库。这部分代码负责调用Rust编译器(rustc)并传递适当参数来生成目标文件,并将其整合到最终构建输出中。...执行性能测试之前,bench 函数根据用户提供选项进行一些解析、检查和处理逻辑。例如,它要检查指定目标包是否存在、是否需要编译依赖项等。...如果指定了包名但未提供版本号,Cargo将获取最新版本包,并向用户确认后进行安装。 当找到并下载了包后,Cargo解压并构建该包二进制文件。...Cargo将安装二进制文件到Rust二进制目录,并将其添加到环境变量中,以便用户可以通过命令行直接调用安装程序。 最后,Cargo继续解析并安装该包依赖关系。

7810

Rust安装与入门

文件命名 Rust程序文件后缀名为.rs 文件命名规范为下划线连接单词,例如hello_world.rs 编译与运行 编译: rustc main.rs 运行: Linux下:....; } 注: rustc只适合简单Rust程序,如果Rust程序文件比较多,应该用Cargo编译Cargo Cargo是Rust构建系统和包管理工具。...它作用是构建代码、下载依赖库、构建这些库… Cargo安装Rust时候一起安装。...,不需要手动修改该文件 # 构建并且运行cargo项目 cargo run 如果之前编译成功过,并且源码没有改变,那么就会直接运行二进制文件 # cargo check命令检查代码,确保能通过编译,但是不产生任何可执行文件...代码运行更快,但是编译时间更长 会在target/release而不是target/debug生成可执行文件

45721

初识Rust

这种大量缩写和奇怪命名我感觉增大了非常多学习成本。也不知道设计者怎么想。 设计核心 Rust设计核心感觉就是不牺牲效率前提下,最大化地利用编译期分析,来帮助我们杜绝可能地错误。...当写在 工程目录/tests 目录里时候可以通过 cargo test --test 测试模块或文件名 来仅允许某个集成测试文件。...上面也能看到,rustup.rs还提供了可以直接下载不依赖本地系统工具链,这使得交叉编译方便了很多。...之前看到一些用go写工具,可以直接很容易地编译出嵌入式设备无依赖地二进制,就觉得很惊艳。现在Rust也能做到了,我打算过段时间想个什么小工具扔家里路由器玩玩。...而且它是怎么当脚本执行?难不成是先编译build.rs然后执行完再构建依赖库或二进制?现阶段只能看看别人怎么写,然后照抄了。 cargo直接集成了realse构建、文档构建和单元测试构建运行。

1.5K40
领券