内容简介:Rust笔记(一)-- 环境配置
安装:
-
Windows平台
下载 https://static.rust-lang.org/dist/rust-1.13.0-x86_64-pc-windows-msvc.msi ,然后双击运行即可,需要选上PATH环境变量配置
其实应该下载这个版本 https://static.rust-lang.org/dist/rust-nightly-x86_64-pc-windows-gnu.msi ,后面会说为什么
- Linux平台
//安装 $ curl -sf -L https://static.rust-lang.org/rustup.sh | sh //卸载 $ sudo /usr/local/lib/rustlib/uninstall.sh
下面命令成功表示安装成功
c:\> rustc --version rustc 1.13.0 (2c6933acc 2016-11-07) C:\> cargo --version cargo 0.13.0-nightly (eca9e15 2016-11-01)
配置IDE
这里介绍的是微软的Visual Studio Code编辑器配置Rust的环境。
Visual Studio Code支持windows、 linux 、mac等,所以在不同平台配置rust都是一样的步骤。
下载地址: https://code.visualstudio.com/
启动visual studio code,ctrl+shift+x切换到插件安装页面,输入rust。
选择安装Rusty Code插件,支持自动完成、跳转到定义、符号等等功能。
安装完成后,重新加载即可启用。
新建一个rs文件,visual studio code自动识别为rust语言。右下角有个Rust tool missing,点击后会提示插件缺少的库,选择安装即可(需要保证rust环境安装成功)
会出现:
Executing "cargo install racer" Updating registry `https://github.com/rust-lang/crates.io-index` ··· Finished release [optimized + debuginfo] target(s) in 335.15 secs Installing C:\Users\xxx\.cargo\bin\racer.exe warning: be sure to add `C:\Users\xxx\.cargo\bin` to your PATH to be able to run the installed binaries Executing "cargo install rustfmt" Updating registry `https://github.com/rust-lang/crates.io-index` ··· Finished release [optimized] target(s) in 270.41 secs Installing C:\Users\xxx\.cargo\bin\cargo-fmt.exe Installing C:\Users\xxx\.cargo\bin\rustfmt.exe warning: be sure to add `C:\Users\xxx\.cargo\bin` to your PATH to be able to run the installed binaries Executing "cargo install rustsym" Updating registry `https://github.com/rust-lang/crates.io-index` ··· Finished release [optimized] target(s) in 203.64 secs Installing C:\Users\xxx\.cargo\bin\rustsym.exe warning: be sure to add `C:\Users\xxx\.cargo\bin` to your PATH to be able to run the installed binaries
安装完成后即可。测试一下,ok。
编译
直接rustc xxx.rs编译程序,会出现缺少linker.exe(选择gnu版是不会出现这个错误,应该是不依赖msvc编译环境)
error: could not exec the linker `link.exe`: 系统找不到指定的文件。 (os error 2) | = note: "link.exe"
因为在Windows平台,rust编译程序需要vs c++编译工具,可以安装vs2013或者更高版本工具,更简单的方式就是下载
Microsoft Visual C++ Build Tools 2015Windows considerations
On Windows, Rust additionally requires the C++ build tools for Visual Studio 2013 or later. The easiest way to acquire the build tools is by installing Microsoft Visual C++ Build Tools 2015 which provides just the Visual C++ build tools. Alternately, you can install Visual Studio 2015 or Visual Studio 2013 and during install select the “C++ tools”.
For further information about configuring Rust on Windows see the Windows-specific rustup documentation.
安装完之后,重新编译成功。(编译不需要重启,但是后面调试中需要重启,否则调试器异常)
Compiling hello_world v0.1.0 (file:///xxx/rust/hello_world) Finished debug [unoptimized + debuginfo] target(s) in 0.28 secs
生成目录
D:\xxx\hello_world>dir 驱动器 D 中的卷没有标签。 卷的序列号是 309A-078B D:\xxx\hello_world 的目录 2016/12/19 11:21 <DIR> . 2016/12/19 11:21 <DIR> .. 2016/12/19 10:59 7 .gitignore 2016/12/19 11:00 47 Cargo.lock 2016/12/19 10:59 89 Cargo.toml 2016/12/19 11:21 103,424 main.exe 2016/12/19 11:21 487,424 main.pdb 2016/12/19 10:59 <DIR> src 2016/12/19 11:00 <DIR> target 5 个文件 590,991 字节 4 个目录 58,963,050,496 可用字节
在Visual Studio Code直接输入命令编译
- ctrl+`,打开集成终端窗口
- 输入rust的编译命令即可
调试
Rust目前支持使用LLDB和GDB调试,在Visual Studio Code可以安装lldb调试插件。
但是目前lldb不支持windows平台,只能在linux平台配置lldb,配置步骤如下:
依然ctrl+shift+x,然后输入rust,在列表中选择LLDB Debugger安装即可
安装之后,重新加载窗口,调试插件生效。
打开之前的rs文件(vs code需要打开其目录作为工程目录),切换到调试窗口,点击调试开始按钮,会打开launch.json配置文件
{ "version": "0.2.0", "configurations": [ { "name": "Debug", "type": "lldb", "request": "launch", "program": "${workspaceRoot}/xxx", //main "args": [] } ] }
将program中xxx配置为编译后的文件名就可以进行调试了。
在windows平台,需要使用gdb进行调试
使用TDM-GCC的GDB(需要支持 Python 扩展,MinGW64的GDB貌似不支持)
-
下载 TDM-GCC-gdb , 不需要安装,解压后,拷贝bin、gdb64、share目录到rust安装目录,修改gdb64\bin目录中gdbinit内容,文件末尾加上
python print "---- Loading Rust pretty-printers ----" sys.path.insert(0, "你的rust安装目录/lib/rustlib/etc") import gdb_rust_pretty_printing gdb_rust_pretty_printing.register_printers(gdb) end
-
下载rust源码, https://github.com/rust-lang/rust ,拷贝etc目录到x\rust\lib\rustlib目录
-
测试gdb是否安装成功
C:\>gdb GNU gdb (GDB) 7.9.1 Copyright (C) 2015 Free Software Foundation, Inc. ... ---- Loading Rust pretty-printers ----
-
在Visual Studio Code中搜搜安装native debug插件(不止支持gdb),重新加载后,打开rs文件目录,切换到调试页面,点击调试按钮,弹出调试器列表,选择gdb,然后配置好launch.json文件(同lldb),保存即可开始调试
{ "version": "0.2.0", "configurations": [ { "name": "Debug", "type": "gdb", "request": "launch", "target": "./target/debug/hello_world.exe", "cwd": "${workspaceRoot}" } ] }
问题
- 在调试中遇到问题
---- Loading Rust pretty-printers ---- No symbol table is loaded. Use the "file" command.
经过一番周折发现是racer\rustfmt\rustsym没有安装成功,符号相关的是rustsym,
安装完成之后,依然无法识别符号,各种翻找资料,无果。
最后在一篇 英文博客 中看到别人下载的rust版本是rust-nightly-x86_64-pc-windows-gnu.msi,突然想是不是跟版本有关,因为我下载的是msvc版,编译结果符号应该也是ms的,而调试其是gdb,是不是这样就识别不了了呢,而gnu版rust正好和gdb配套(猜测),所以应该会ok。
果不其然,重新下载了 https://static.rust-lang.org/dist/rust-nightly-x86_64-pc-windows-gnu.msi ,配置之后,可以正常识别符号了。
效果图:
gnu版的rust在配置gdb时,不用下载rust源码添加etc目录的文件
- Visual Studio Code左下角出现racer crashed,点击之后看到
Racer Output: RUST_SRC_PATH environment variable must be set to point to the src directory of a rust checkout. E.g. "/home/foouser/src/rust/src" Racer Error:
是因为安装racer步骤不完整,
需要将rust源码中src拷贝到rust安装目录中,然后设置环境变量
RUST_SRC_PATH = rust安装目录\src
验证racer是否成功:
c:\>racer complete std::io::B MATCH BufReader,50,11,C:\Program Files\Rust stable MSVC 1.13\src\libstd\io\buffered.rs,Struct,pub struct BufReader<R> MATCH BufWriter,309,11,C:\Program Files\Rust stable MSVC 1.13\src\libstd\io\buffered.rs,Struct,pub struct BufWriter<W: Write> MATCH BufRead,1208,10,C:\Program Files\Rust stable MSVC 1.13\src\libstd\io\mod.rs,Trait,pub trait BufRead: Read MATCH Bytes,1605,11,C:\Program Files\Rust stable MSVC 1.13\src\libstd\io\mod.rs,Struct,pub struct Bytes<R> MATCH BufReader,50,11,.\libstd\io\buffered.rs,Struct,pub struct BufReader<R> MATCH BufWriter,309,11,.\libstd\io\buffered.rs,Struct,pub struct BufWriter<W: Write> MATCH BufRead,1208,10,.\libstd\io\mod.rs,Trait,pub trait BufRead: Read MATCH Bytes,1605,11,.\libstd\io\mod.rs,Struct,pub struct Bytes<R>
在用户设置中配置如下参数:
(如果已经将rust\bin和.cargo\bin加入PATH,并且设置好了RUST_SRC_PATH的话,这一步可以省略)
{
“rust.racerPath”: null, // Specifies path to Racer binary if it’s not in PATH
“rust.rustLangSrcPath”: null, // Specifies path to /src directory of local copy of Rust sources
“rust.rustfmtPath”: null, // Specifies path to Rustfmt binary if it’s not in PATH
“rust.cargoPath”: null, // Specifies path to Cargo binary if it’s not in PATH
“rust.cargoHomePath”: null, // Path to Cargo home directory, mostly needed for racer. Needed only if using custom rust installation.
“rust.formatOnSave”: false, // Turn on/off autoformatting file on save (EXPERIMENTAL)
“rust.checkOnSave”: false, // Turn on/off cargo check
project on save (EXPERIMENTAL)
“rust.checkWith”: “build” // Specifies the linter to use. (EXPERIMENTAL)
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
标签: rust
猜你喜欢:- 分离Webpack开发环境与生产环境的配置
- Xcode配置测试环境和线上环境
- Linux环境centos7 配置java环境
- hadoop地址配置、内存配置、守护进程设置、环境设置
- 配置lisp开发环境
- 配置lisp开发环境
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
URL 编码/解码
URL 编码/解码
RGB CMYK 转换工具
RGB CMYK 互转工具