MozkiLeo

MozkiLeo 查看完整档案

大连编辑大连海事大学  |  交通工程 编辑  |  填写所在公司/组织 www.notion.so/Home-ab951c96944743cb8c9bdc40f07f9026 编辑
编辑

吃过的路比人家走过的米都咸

个人动态

MozkiLeo 发布了文章 · 8月2日

Rust+VS Code 安装/配置/调试指南

前言

初学 Rust,在第一步配置环境上就踩了好多坑 😂 故分享出来……(方便大家第一时间赶到现场嘲笑)

安装

配置环境

基于 Win10,主要开发环境有两种选择:

  • Windows + Rust
  • WSL2 + Rust

至于为什么不是 WSL1,因为截至目前,WS1 配置 Rust 环境时会出现一些 bug

配置 Rust

Win10 安装 Rust

这里还是有多种选择:

  • 基于 MSVC 安装
  • 基于 GNU 安装

MSVC 是官方推荐的安装方式,但是需要安装 Visual C++ Build Tools,一通操作就是好几个 GB,所以目前选择了较为轻便的 GNU 工具链作为后端。

对于 GNU 工具链,我选择的是 mingw-w64,关于配置这个的更多信息请参考这篇文章

配置好 mingw-w64 之后,就可以正式安装了,首先去官网下载安装包,然后进入 Power shell:

# 临时镜像加速,下载慢的话可能需要设置这个
$env:RUSTUP_DIST_SERVER='https://mirrors.ustc.edu.cn/rust-static'
$env:RUSTUP_UPDATE_ROOT='https://mirrors.ustc.edu.cn/rust-static/rustup'

# 运行刚刚下载的安装工具
path_to_your\rustup-init.exe

如果没有安装 MSVC 工具链,打开之后可能会出现如下提示,键入 y 继续:

继续安装

继续之后,键入 2 自定义安装方式,输入 x86_64-pc-windows-gnu 以使用 GNU 工具链安装,其余项目可以直接跳过:

配置安装选项

最后键入 1 等待完成安装。

WSL 安装 Rust

关于如何配置 WSL,不在赘述,可以参考官方文档

具体安装步骤基本和 Win10 一致:

# 设置临时镜像加速
export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup

# 如果在 WSL1 环境下,可能需要设置这个
export RUSTUP_IO_THREADS=1

# 官网提供的安装命令
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

下载好安装包之后,直接键入 1 等待完成安装:

等待安装

最后配置 $PATH

# 添加到path
source $HOME/.cargo/env

# 我使用的是 fish 需要特别设置
set -U fish_user_paths ~/.cargo/bin $fish_user_paths

更改镜像源

~/.cargo/config 添加如下内容:

[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"

# 替换成任一镜像源
replace-with = 'ustc'
# replace-with = 'tuna'
# replace-with = 'sjtu'
# replace-with = 'rustcc'

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

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

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

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

需要注意的是,尽量不要直接修改 ~/.cargo/config 文件,可能会因为换行符导致 cargo 无法读取……可以使用如下命令导入:

  • 使用 Power Shell(Win10、Ubuntu……):
@"
# 这里粘贴你的配置文件
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'ustc'
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
"@ | Out-File ~/.cargo/config
  • 使用 bash 或 fish:
cat >> ~/.cargo/config
# 这里粘贴你的配置文件
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'ustc'
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
# 键入 Ctrl+D 结束

配置 VS Code

首先要安装 Rust 扩展,调试的话有多种选择:

  • 使用 GDB 进行调试:Native DebugC/C++ 扩展等
  • 使用 LLDB 进行调试:Native DebugCodeLLDB 扩展等

建议使用 CodeLLDB 进行调试,因为截至目前为止,只有 CodeLLDB 对 Rust 做了特别的适配,可以根据 Cargo.toml 自动生成相关的调试配置。

测试

新建个项目看下效果:

注意:第一次打开 .rs 文件时,VS Code 右下角可能会提示安装工具链,确认安装就行了,这一步最好已配置好国内源,不然会慢死……

新建项目

然后 运行打开配置CodeLLDB 会检测到 Cargo.toml 文件,自动生成 launch.json 配置,加点儿代码,放个断点,最后 F5 调试,大功告成!

调试

参考资料

查看原文

赞 0 收藏 0 评论 0

MozkiLeo 关注了专栏 · 8月2日

前端精读专栏

精读前端业界好文,每周更新

关注 6496

MozkiLeo 关注了标签 · 8月2日

前端

Web前端开发是从网页制作演变而来的,名称上有很明显的时代特征。在互联网的演化进程中,网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览为主。2005年以后,互联网进入Web 2.0时代,各种类似桌面软件的Web应用大量涌现,网站的前端由此发生了翻天覆地的变化。网页不再只是承载单一的文字和图片,各种富媒体让网页的内容更加生动,网页上软件化的交互形式为用户提供了更好的使用体验,这些都是基于前端技术实现的。

Web前端优化
  1. 尽量减少HTTP请求 (Make Fewer HTTP Requests)
  2. 减少 DNS 查找 (Reduce DNS Lookups)
  3. 避免重定向 (Avoid Redirects)
  4. 使得 Ajax 可缓存 (Make Ajax Cacheable)
  5. 延迟载入组件 (Post-load Components)
  6. 预载入组件 (Preload Components)
  7. 减少 DOM 元素数量 (Reduce the Number of DOM Elements)
  8. 切分组件到多个域 (Split Components Across Domains)
  9. 最小化 iframe 的数量 (Minimize the Number of iframes)
  10. 杜绝 http 404 错误 (No 404s)

关注 152566

MozkiLeo 关注了标签 · 8月2日

javascript

JavaScript 是一门弱类型的动态脚本语言,支持多种编程范式,包括面向对象和函数式编程,被广泛用于 Web 开发。

一般来说,完整的JavaScript包括以下几个部分:

  • ECMAScript,描述了该语言的语法和基本对象
  • 文档对象模型(DOM),描述处理网页内容的方法和接口
  • 浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口

它的基本特点如下:

  • 是一种解释性脚本语言(代码不进行预编译)。
  • 主要用来向HTML页面添加交互行为。
  • 可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。

JavaScript常用来完成以下任务:

  • 嵌入动态文本于HTML页面
  • 对浏览器事件作出响应
  • 读写HTML元素
  • 在数据被提交到服务器之前验证数据
  • 检测访客的浏览器信息

《 Javascript 优点在整个语言中占多大比例?

关注 134743

MozkiLeo 关注了标签 · 8月2日

关注 81989

MozkiLeo 关注了标签 · 8月2日

程序员

一种近几十年来出现的新物种,是工业革命的产物。英文(Programmer Monkey)是一种非常特殊的、可以从事程序开发、维护的动物。一般分为程序设计猿和程序编码猿,但两者的界限并不非常清楚,都可以进行开发、维护工作,特别是在中国,而且最重要的一点,二者都是一种非常悲剧的存在。

国外的程序员节

国外的程序员节,(英语:Programmer Day,俄语:День программи́ста)是一个俄罗斯官方节日,日期是每年的第 256(0x100) 天,也就是平年的 9 月 13 日和闰年的 9 月 12 日,选择 256 是因为它是 2 的 8 次方,比 365 少的 2 的最大幂。

1024程序员节,中国程序员节

1024是2的十次方,二进制计数的基本计量单位之一。程序员(英文Programmer)是从事程序开发、维护的专业人员。程序员就像是一个个1024,以最低调、踏实、核心的功能模块搭建起这个科技世界。1GB=1024M,而1GB与1级谐音,也有一级棒的意思。

从2012年,SegmentFault 创办开始我们就从网络上引导社区的开发者,发展成中国程序员的节日 :) 计划以后每年10月24日定义为程序员节。以一个节日的形式,向通过Coding 改变世界,也以实际行动在浮躁的世界里,固执地坚持自己对于知识、技术和创新追求的程序员们表示致敬。并于之后的最为临近的周末为程序员们举行了一个盛大的狂欢派对。

2015的10月24日,我们SegmentFault 也在5个城市同时举办黑客马拉松这个特殊的形式,聚集开发者开一个编程大爬梯。

特别推荐:

【SF 黑客马拉松】:http://segmentfault.com/hacka...
【1024程序员闯关秀】小游戏,欢迎来挑战 http://segmentfault.com/game/

  • SF 开发者交流群:206236214
  • 黑客马拉松交流群:280915731
  • 开源硬件交流群:372308136
  • Android 开发者交流群:207895295
  • iOS 开发者交流群:372279630
  • 前端开发者群:174851511

欢迎开发者加入~

交流群信息


程序员相关问题集锦:

  1. 《程序员如何选择自己的第二语言》
  2. 《如何成为一名专业的程序员?》
  3. 《如何用各种编程语言书写hello world》
  4. 《程序员们最常说的谎话是什么?》
  5. 《怎么加入一个开源项目?》
  6. 《是要精于单挑,还是要善于合作?》
  7. 《来秀一下你屎一般的代码...》
  8. 《如何区分 IT 青年的“普通/文艺/二逼”属性?》
  9. 程序员必读书籍有哪些?
  10. 你经常访问的技术社区或者技术博客(IT类)有哪些?
  11. 如何一行代码弄崩你的程序?我先来一发
  12. 编程基础指的是什么?
  13. 后端零起步:学哪一种比较好?
  14. 大家都用什么键盘写代码的?

爱因斯坦

程序猿崛起

关注 110624

MozkiLeo 关注了标签 · 8月2日

vue.js

Reactive Components for Modern Web Interfaces.

Vue.js 是一个用于创建 web 交互界面的。其特点是

  • 简洁 HTML 模板 + JSON 数据,再创建一个 Vue 实例,就这么简单。
  • 数据驱动 自动追踪依赖的模板表达式和计算属性。
  • 组件化 用解耦、可复用的组件来构造界面。
  • 轻量 ~24kb min+gzip,无依赖。
  • 快速 精确有效的异步批量 DOM 更新。
  • 模块友好 通过 NPM 或 Bower 安装,无缝融入你的工作流。

官网:https://vuejs.org
GitHub:https://github.com/vuejs/vue

关注 96881

MozkiLeo 关注了标签 · 8月2日

关注 64783

MozkiLeo 关注了标签 · 8月2日

python

Python(发音:英[ˈpaɪθən],美[ˈpaɪθɑ:n]),是一种面向对象、直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法非常简捷和清晰,与其它大多数程序设计语言不一样,它使用缩进来定义语句。

Python支持命令式程序设计、面向对象程序设计、函数式编程、面向切面编程、泛型编程多种编程范式。与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理存储器使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。

Python的主要参考实现是CPython,它是一个由社区驱动的自由软件。目前由Python软件基金会管理。基于这种语言的相关技术正在飞快的发展,用户数量快速扩大,相关的资源非常多。

关注 102710

MozkiLeo 关注了标签 · 8月2日

数据库

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。

关注 6632

认证与成就

  • 获得 0 次点赞
  • 获得 1 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 1 枚铜徽章

擅长技能
编辑

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 8月1日
个人主页被 89 人浏览