栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

mac环境下 rust 环境安装

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mac环境下 rust 环境安装

mac环境下 rust 环境安装

Stack Overflow 2022 开发者调查报告现已出炉。Stack Overflow 年度开发者调查是面向全球开发者进行的规模最大、最全面的调查,调查涵盖了从开发者喜爱的技术到工作偏好等内容。2022 年是 Stack Overflow 发布年度开发者调查报告的第十二年,有来自 180 个国家 / 地区的 73000 多名开发人员参与了这个调查。其中,依旧是来自美国和印度的受访者数量最多,其次是德国和 UKI(英国和爱尔兰);仅有 632 份调查反馈来自中国开发者,占比为 0.88%。

rust的应用场景

Rust 已连续第七年成为最受喜爱的语言,87% 的开发人员表示他们希望继续使用它。
Rust最爽的是可以从 C++调用 rust,以前大部分语言都是只能调用 C++,C++反过来是不能直接调用的,都要比较麻烦的接口。rust同 C++的无缝结合,正可以从 lib层慢慢替换各个各个原有模块

Rust最容易吸引的人群可能是C++程序员:因为,一方面解决了不少C++的痛点,另一方面Rust的很多特性其实有点复杂也有点门槛的。这些特性背后的动因有C++背景的程序员是非常容易理解,也是不少C++程序员梦寐以求的。相对而言,其他语言背景出身的程序员,对Rust的共鸣性远远没有C++程序员强烈。
Rust的主要目标是弥补C++的很多不足最终可以完全替代C++, 能写出更安全稳定且性能不输C++的程序

但编程语言没有十全十美的设计,Rust满足了安全稳定和性能, 是以开发效率和上手难度的代价换来的

也就是说Rust主要的领域在功能较稳定的底层模块, 不太适合写需求大量易变的上层逻辑

rust面临的生态问题和开发优势

1.内存安全模型,这是趟过c/c++坑的人的共识,也是业界的共识,大型c++项目如os,游戏引擎,浏览器等,70%的bug都是因为内存安全引起。

2.高性能,无运行时,不像c#,java,go一样有gc,这样理论上可以做到和c一样的目标代码的运行效 率。

3.拥抱web,随着web上的应用越来越复杂,未来可见的wasm,rust是最佳语言,跟上面一条一样,因为无运行时,rust编译出来的wasm极小,这在web环境下是非常重要的。虽然c/c++编译成wasm也同样很小,但项目组织和包管理比rust复杂多了。

Google开始在Rust OS底层开发中逐步使用Rust替代C++。主要是针对新项目,老的C++不会动的。

安装

今天我们就在mac开发环境下安装一下rust

先上资料:https://www.rust-lang.org/zh-CN/tools/install

执行 curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh
进行rust的安装
期间会弹出一个input,一般开发者输入1就可以。
安装过程如下:

安装成功后可以使用rustc -V来查询版本

大功告成。

创建项目并测试

使用cargo命令创建项目, cargo new project

看一下项目名称是否正确

进入项目进行编辑执行 :

cargo build进行编译 cargo run进行执行

大功告成!@@! idea编辑器插件安装

安装IntelliJ插件

需要安装两个插件 intellij-rust和intellij-toml, intellij-rust是Rust语言插件,intellij-toml是为Toml语言的插件,是为cargo的配置文件cargo.toml使用。

安装方式:Perferences… -> Plugins 在Marketplact中直接搜索Rust 同样方式搜索toml并安装。


重启idea ,创建项目


执行 demo


常见问题

问题一:
解决办法
vi ~/.cargo/config

# 放到 `$HOME/.cargo/config` 文件中
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"

# 替换成你偏好的镜像源
replace-with = 'sjtu'
#replace-with = 'ustc'

# 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"

# 中国科学技术大学
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"

# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"

# rustcc社区
[source.rustcc]
registry = "git://crates.rustcc.cn/crates.io-index"

[net]
git-fetch-with-cli=true

变为上海交通大学的源,设置为从git拉取。git就不会不会被墙啦!@@。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/994178.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号