Rust + CLion + Mingw64的安装

Rust语言是现代编程语言思想非常优秀的实践,很早就听说大名但一直没去学习,最近突发兴趣想了解了解。工欲善其事必先利其器,故打算配置一下编译环境,防止遗忘故进行了一些总结。

Windows平台下的各个软件版本:

Rust:1.51.0

CLion:2021.1

Mingw64:8.1.0

注:本篇博文为亲自实践的总结,内容分为【教程】和【原理】两部分,前者为了提供直接的配置方案,后者解释原理并提供额外的策略;若软件版本号不相同直接照搬【教程】可能出现问题,此时可以参考【原理】部分自行探索。

 

【教程】

1. Mingw64的下载

若下载速度很慢或失效则需要去寻找其他的镜像站点或者挂VPN。

下载完成后解压并将Mingw64放到电脑的任意位置,将bin目录的路径放入电脑环境变量的Path中。

2. CLion的安装

官网下载安装即可,学生账号可以申请免费试用,否则需要购买。

3. 配置CLion的编译工具链为MinGW

随便新建一个Project,打开后,从工具栏进入设置配置:File->Settings->Build,Execution,Deployment->Toolchains

一般而言,此时应该能看到右侧存在一个MinGW(default),Environment那一项对应自己mingw64所放置的路径,且自动检测到整个工具链,则不需要任何操作。

Rust + CLion + Mingw64的安装

  • MinGW不在最上侧,通过上图1处的上下箭头进行调整;
  • 不存在MinGW,则点击上图1处的加号,选择MinGW,默认会自动检测并填充每项空格,若没有检测到则需要手动添加。

4. 安装Rust(建议关闭CLion)

1)下载rustup-init.exe(先不运行)

2)配置安装路径

如果希望Rust默认安装则跳过该步骤,若需要安装在其他地方,则需要添加如下两个环境变量:

CARGO_HOME:cargo的安装路径,本人设置成了D:\Rust\cargo

RUSTUP_HOME:rustc的安装路径,本人设置成了D:\Rust\rustup

3)运行rustup-init.exe

出现提示后输入2,则会依次询问安装配置,其中host triple填写为x86_64-pc-windows-gnu,其他直接回车即可

等到配置完,注意下图红线位置是否与填写的一致,输入1或者直接回车等待安装完成即可。

Rust + CLion + Mingw64的安装

4)配置默认链接器

在cargo的安装目录(若配置了CARGO_HOME则为该路径,也就是D:\Rust\cargo目录,否则得找到默认的安装路径,一般为C盘用户目录下的.cargo)下新建配置文件,文件名为config或者config.toml均可,添加如下两行:

[target.x86_64-pc-windows-gnu]

linker = "D:\\mingw64\\bin\\gcc.exe"

第二行为mingw64的gcc路径,需要根据自己的真实安装位置修改 。

5. 运行CLion,安装Rust插件(File->Settings->Plugins,搜索Rust安装第一个即可),重启CLion,新建Project就能看到Rust选项了,即可享受被Rust虐之旅

 

【原理】

1.Mingw

MinGW为windows下的GNU工具链,主要是用到了其提供的C/C++编译链。目前Rust语言还处于不断迭代之中,需要用到C/C++的工具链协助链接,所以在4(4)这个步骤相当于告诉Rust编译器gcc的位置。相信不久的未来随着Rust的应用越来越广泛,会形成更加完善的生态不再依赖外部。

2.Clion

CLion为Jetbrain公式开发的跨平台C/C++集成开发环境,由于目前还没有特别主流的Rust集成环境,故现在选择了CLion。

3.配置CLion的编译工具链为MinGW

对于一门编程语言来说,要么存在编译器(如gcc)要么存在解释器(如JVM),上文的教程中我们在CLion里面配置了相应的C语言编译工具。个人认为自行配置这些环境可以帮助理解编程语言这个工具(编程语言只是工具不是目的,学习一种编程语言一定是为了完成特定的功能或任务,或者觉得好玩),而一开始就用Visual Studio会让人变懒。网上有大量的教程讲解如何下载和配置MinGW,故不再赘述。

4.Rust

Rust的学习成本较高,首先自定义安装就不是很方便,需要借助命令行来配置,未来可能会出现更为便捷的安装配置方式。

环境变量是操作系统的运行环境配置,比如Windows的环境变量Path表示默认搜索路径,对于用户来说可以将环境变量看做全局标签,Rust就是通过读取环境变量的值来决定自己的安装和编译行为的。这也为何在安装Rust之前配置RUSTUP_HOME和CARGO_HOME的原因。

其中RUSTUP_HOME表示Rust编译器的安装目录,CARGO_HOME表示是Rust的包管理工具cargo的安装路径。编程语言通过特定的工具进行包管理是非常高效的行为,比如Python的pip工具,Java的包管理器Maven等。当然如果经常写C/C++的话可能并不熟悉包管理,在C++中通过头文件来管理外部的函数或库,其实这是非常低效的行为,现代编程语言很多都抛弃了这个功能(头文件系统是C++的累赘,否则为何C++ 20要引入模块(Modules)这个功能)。个人的观点是,技术是发展的,所有过去学会的技术绝不是一定不易的,不断学习才能取得进步。

5. 下载CLion的Rust插件

因为CLion本身是C/C++开发平台,并不能直接编写并调试Rust程序,故需要额外的插件,好在Jetbrain官方就提供了这样的插件,直接安装就行,这提供了对Rust代码的自动补全、颜色高亮等等功能。

需要注意的是,通过CLion新建Rust项目目前还不是很稳定,有时会出现无法新建的bug,这时在powershell上使用cargo新建(cargo new 项目名)即可,编写和调试代码再借助CLion。

上一篇:MinGW和CLion配置OpenGL环境


下一篇:Tool/IDE之MinGW:MinGW(C++环境)的简介、安装、使用方法之详细攻略