ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

不用rustup,Windows下gnu版Rust安装与开发环境配置

2022-02-25 11:33:37  阅读:232  来源: 互联网

标签:rustup Windows gnu 源码 rust 安装 环境变量 Rust software


写在前面

本文介绍了在不使用rustup的情况下,在Windows上安装gnu版的Rust,并配置开发环境(VSCode + rust-analyzer,CLion + IntelliJ Rust)的过程。Win10上亲测有效。

预备知识:

  1. rustup:rustup 是Rust 的安装和管理工具,感兴趣的读者可自行上网了解。
  2. “gnu版本的Rust”:Rust有工具链(toolchain)的概念,是指开发Rust应用程序所需的一系列组件或工具[1]。如果工具链中的gcc编译器和ABI是微软的,就是msvc版本;如果是GNU的,就是gnu版本[2]。

请您注意:

  1. 请不要轻易复制粘贴本文中的命令,请保持仔细和小心,根据您的具体情况更改。
  2. 本文所提到的环境变量都是指系统环境变量,而不是用户环境变量,请注意区分。
  3. 您的系统最好具备访问外网的能力(非必须,但推荐),否则可能无法访问下面的某些网站,也无法下载某些资源。
请添加到系统环境变量

正文

故事背景

现在网上几乎所有的Windows安装Rust的教程都是通过rustup安装msvc版本,即便是有个别介绍安装gnu版本的,也是通过rustup来安装。但这不适合在下,第一,在下不想安装Visual Studio C++ Build tools;第二,在利用rustup安装gnu版本的Rust时,总是遇到如下报错(报错信息经过了简化):

could not rename component file from 'D:\aaa\xxx.dll' to 'D:\bbb\xxx.dll': 另一个程序正在使用此文件,进程无法访问。 (os error 32)

在下猜测出错的原因可能是:rustup生成 D:\aaa\xxx.dll 后,该dll被在下电脑上的安全软件扫描了,当rustup想将它移动到另一个位置时,发现文件被占用。问题无解的地方在于,在下没有权限关闭上述安全软件。

于是在下开始了 install rust without rustup 的探索之旅。

步骤

一、安装MinGW64

step1.这里下载最新版的编译好的mingw64,如winlibs-x86_64-posix-seh-gcc-12.0.1-snapshot20220123-mingw-w64-9.0.0-r1.7z,注意选择带x86_64字样的下载。

下载MinGW64

step2. 下载后直接解压,将得到的mingw64文件夹拷贝您感兴趣的位置。

step3. 然后配置系统环境变量。比如mingw64文件夹的全路径是 D:\software\mingw64,那就把 D:\software\mingw64\bin 添加到系统的PATH环境中。至于如何添加环境变量,请不会的读者自行学习。对于一些容易的、没有坑的步骤,本文不赘述,下同。

二、安装gnu版Rust

step1.这里下载安装包,稳妥起见,下载stable版本。然后正常安装就行,安装过程会自动添加环境变量。可以自定义安装位置,如 D:\software\Rust。

下载gnu版Rust

step2. 打开CMD或PowerShell,运行 cargo -V 和 rustc -V ,如出现类似下面的输出,证明成功。 

安装成功截图

三、安装Rust源码

step1.这里下载源码。假如,您想要把源码安装在 D:\software 目录下,就把下载好的源码移到这里。

下载Rust源码

step2. 请确保您的系统上有可加压.tar.gz的工具,如7-Zip

step3. 将解压工具的可执行文件的路径(如 D:\software\7-Zip)添加到系统PATH环境变量。

step4. 以管理员身份(注意,这是必须的)打开CMD或PowerShell,cd到源码所在目录(如 D:\software),依次执行 7z x rustc-1.58.1-src.tar.gz和 7z x rustc-1.58.1-src.tar ,解压后,可得到 rustc-1.58.1-src 文件夹。(注意:1. 如果您不是使用7-Zip作为解压工具,请自行查询您所用工具的解压命令行;2. rustc-1.58.1-src.tar.gz 是下载的源码压缩包,您下载的可能不是这个名字,对应的,解压出的文件夹也不叫 rustc-1.58.1-src;3. 由于压缩包比较大,解压需要较长时间,请耐心等待) 

四、配置VSCode + rust-analyzer

step1. 安装VSCode并为其安装rust-analyzer,不会安装VSCode的读者请自行学习,然后用最简单的方法安装rust-analyzer就行,参考这里。此时rust-analyzer多半还不能用,原因是找不到stdlib,请转step2。如果由于网络原因您不能安装rust-analyzer,请自行想办法或转step3.

step2. 添加系统环境变量 RUST_SRC_PATH,值为 D:\software\rustc-1.58.1-src\library(假设上一步您将源码安装在D:\software下,且解压后的源码文件夹名为rustc-1.58.1-src,请根据您的实际情况更改),如下图。配置好环境变量后,重启VSCode,应该就可以了。注意,您需要打开一个rust项目,并耐心等待rust-analyzer加载成功,才能看到下图所示结果。

添加系统环境变量RUST_SRC_PATH rust-analyzer安装成功截图

step3. 如果您无法用step1的方法安装rust-analyzer,可以编译源码安装。请确保您安装了Node.js(后面会用到其中包含的npm,如果您正常安装了Node.js,npm.exe对应的路径已添加到系统PATH环境变量,如果没有,请您手动添加),同时将 D:\software\VSCode 和 D:\software\VSCode\bin(这里假设您的VSCode的安装路径是 D:\software\VSCode,请根据您的实际情况调整)添加到了系统PATH环境变量。

step4. 请打开CMD或PowerShell(这次不必以管理员身份打开),cd到 D:\software\rustc-1.58.1-src\src\tools\rust-analyzer(请根据您的Rust源码安装位置调整相应的目录),然后依次执行 cargo xtask install 和 cargo xtask install --server 。(编译安装参考了[3],只不过我们上一步安装的Rust源码中已包含了rust-analyzer的源码,不用从github上下载了。编译过程很长,大概20多分钟,请您耐心等待)。

step5. 安装完成后,请根据命令行窗口最后的输出(如 warning: be sure to add `D:\software\Rust\.cargo\bin` to your PATH to be able to run the installed binaries)将对应的路径添加到系统PATH环境变量。另外,不要忘了执行step2。

五、 配置CLion + IntelliJ Rust

step1. 下载安装CLion,如果想免费用,请您自行想办法。然后,打开CLion, 依次点击File -> Settings -> Plugins,搜索Rust,然后点击安装。也可通过先下载插件,再安装的方法,请读者自己学习如何操作。可以参考官网(如果您已能访问外网但还是无法访问该网站,请查看您是否在hosts文件中将jetbrains的相关网站屏蔽)。

step2. 依次点击File -> Settings -> Languages & Frameworks -> Rust,然后进行相关配置。条件所限,恕不能截图,可参考下图(图片来源)。如果您的Rust安装目录是 D:\software\Rust,Rust源码安装目录是 D:\software\rustc-1.58.1-src,那么,第一行配置(Toolchain location)就填 D:\software\Rust\bin,第二行配置(Standard library)就填 D:\software\rustc-1.58.1-src 或 D:\software\rustc-1.58.1-src\library(亲测两者都行)。

配置示意图

step3. 利用CLion打开Rust项目,耐心等待Rust插件初始化成功。 

写在后面

本文是在下的实践经验记录,希望能帮到有同样需求的读者。由于在下才疏学浅、能力有限,错误疏漏之处在所难免,欢迎广大读者批评指正,您的批评是在下前进的不竭动力。

参考

[1] What exactly is a Rust "toolchain"? - Stack Overflow
[2] Difference between the gnu and msvc toolchains? : rust
[3] Windows下编译安装rust-analyzer并启用VSCode扩展 - 知乎

标签:rustup,Windows,gnu,源码,rust,安装,环境变量,Rust,software
来源: https://www.cnblogs.com/zpcdbky/p/15933601.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有