公司的虚拟化方案是用rust重构的,为了搭建环境,又开始起来的rust。哎,太菜了太菜了。以前学的东西脑子里全丢了。这里补一个rust环境配置。切记,rust不要想用ubuntu源里面的,直接根据文档使用最新的版本
apt install curl rsync gdb-multiarch openocd cargo doxygen qemu-user-static \ build-essential libncurses5-dev libssl-dev libgtk2.0-dev libglib2.0-dev
vim ~/.bash_profile export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
curl -L https://static.rust-lang.org/rustup.sh -O sh rustup.sh
Current installation options: default host triple: x86_64-unknown-linux-gnu default toolchain: stable (default) profile: default modify PATH variable: yes 1) Proceed with installation (default) 2) Customize installation 3) Cancel installation
选择自定义,配置最后如下:
default host triple: x86_64-unknown-linux-gnu default toolchain: nightly profile: complete modify PATH variable: yes
最后安装好了获得如下提示
nightly-x86_64-unknown-linux-gnu installed - rustc 1.77.0-nightly (30dfb9e04 2024-01-14)
source ~/.bashrc rustc --version rustc 1.59.0 rustup --version rustup 1.26.0 (5af9b9484 2023-04-05) info: This is the version for the rustup toolchain manager, not the rustc compiler. info: The currently active `rustc` version is `rustc 1.77.0-nightly (30dfb9e04 2024-01-14)`
这样,rust就安装好了
rust默认是安装stable版本,但是有nightly和beta版本可选,其用到了"火车发布模型",rust特地规定了stable无法使用打上feature flags的功能,而我们的仓库就是这种,所以我只好选择nightly。简单理解如下:
关于版本的详细了解如下链接:
https://rustwiki.org/zh-CN/book/appendix-07-nightly-rust.html
否则会出现如下错误:
`#![feature]` may not be used on the stable release channel
如果需要切换stable和nightly或beta,如下
rustup default stable/nightly/beta
rustc --print target-list
rustup target add aarch64-unknown-linux-gnu
下载编译工具链
wget https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz xz -d gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz tar xvf gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar
配置工具链
vim ~/.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" [build] target = "aarch64-unknown-linux-gnu" [target.aarch64-unknown-linux-gnu] linker = "aarch64-none-linux-gnu-gcc"
cargo new hello --bin cd hello && cargo build
如果想要编译x86的,如下即可
cargo build --target=x86_64-unknown-linux-gnu
Rust文档还是很全的,如下:
https://www.kancloud.cn/thinkphp/rust/36040
https://kaisery.github.io/trpl-zh-cn/ch01-01-installation.html
https://forge.rust-lang.org/index.html
https://doc.rust-lang.org/book/second-edition/foreword.html