安装依赖
此为arm64平台需要的依赖,x86平台也差不多,比如将以下的xx-devel改为xx-dev
yum install make ncurses-devel bison m4 diffutils flex bc openssl-devel
rust命令行工具
curl -OL https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup/archive/1.21.1/aarch64-unknown-linux-gnu/rustup-init
chmod a+x rustup-init
./rustup-init
会在$HOME/.cargo/bin下生成相关可执行文件
将可执行文件加到PATH中
source ~/.cargo/env
cargo build加速
创建~/.cargo/config文件
[target.'cfg(target_os = "linux")']
rustflags = ["-C", "link-arg=-nostartfiles"]
[target.'cfg(target_os = "windows")']
rustflags = ["-C", "link-args=/ENTRY:_start /SUBSYSTEM:console"]
[target.'cfg(target_os = "macos")']
rustflags = ["-C", "link-args=-e __start -static -nostartfiles"]
[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"
# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index/"
安装指定版本rust
rustup install 1.50.0
查看安装的版本
rustup toolchain list
切换版本
rustup default 1.50.0-aarch64-unknown-linux-gnu
问题:
error[E0463]: can't find crate for `core`
|
= note: the `aarch64-unknown-linux-musl` target may not be installed
= help: consider downloading the target with `rustup target add aarch64-unknown-linux-musl`
For more information about this error, try `rustc --explain E0463`.
error: could not compile `lazy_static` due to previous error
warning: build failed, waiting for other jobs to finish...
error[E0463]: can't find crate for `std`
|
= note: the `aarch64-unknown-linux-musl` target may not be installed
= help: consider downloading the target with `rustup target add aarch64-unknown-linux-musl`
error: build failed
make: *** [Makefile:107:target/aarch64-unknown-linux-musl/release/kata-agent] 错误 101
解决:
rustup target add aarch64-unknown-linux-musl