To build StratoVirt, make sure that Rust language environment and Cargo have already been installed. The recommended version of rustc is 1.64.0 or later, otherwise compilation may be failed.
$ rustc --version
rustc 1.64.0
If you want to deploy rust environment, the following link will help you:
https://www.rust-lang.org/tools/install
With glibc, StratoVirt is linked dynamically. It's the default target to build StratoVirt.
# Add gnu rust tool-chain, if installed, skip
$ arch=`uname -m`
$ rustup target add ${arch}-unknown-linux-gnu
# Build StratoVirt
$ cargo build --workspace --bins --release --target ${arch}-unknown-linux-gnu
Now you can find StratoVirt binary file in target/${arch}-unknown-linux-gnu/release/stratovirt
.
StratoVirt can also be built using musl-libc toolchains. By this way, StratoVirt is linked statically and has no library dependencies.
# Add musl rust tool-chain, if installed, skip
$ arch=`uname -m`
$ rustup target add ${arch}-unknown-linux-musl
# Build StratoVirt
$ cargo build --workspace --bins --release --target ${arch}-unknown-linux-musl
Now you can find StratoVirt static binary file in target/${arch}-unknown-linux-musl/release/stratovirt
.
For different scenarios, StratoVirt provides feature conditional compilation options based on the cargo feature
.
List of optional features:
ALSA
interfacePulseAudio
interfacev4l2
backend$ cargo build --workspace --bins --release --features "scream_alsa"
Stratovirt now can run on OpenHarmony OS(OHOS). Stratovirt, OHOS version, is compiled on x64, and relies on RUST cross compilation toolchain and SDK offered by OHOS.
Before compiling, specify OHOS SDK path in environment variable OHOS_SDK. Some crates needed by StratoVirt now are not support OHOS platform, adapting is essential.
Here is a command demo:
RUSTFLAGS="-C link-arg=--target=aarch64-linux-ohos -C linker={OHOS_SDK}/llvm/bin/clang" cargo build --target aarch64-linux-ohos --features {FEATURES}"
In order to build StratoVirt in containers, ensure that the docker software is installed. This can be checked with the following command:
$ docker -v
Docker version 18.09.0
If you want to deploy a docker environment, the following link can help you:
https://docs.docker.com/get-docker/
Run the script under tools/build_stratovirt_static directory to automatically run a docker container to build a statically linked StratoVirt.
$ cd tools/build_stratovirt_static
# Build StratoVirt with your custom_image_name
$ sh build_stratovirt_from_docker.sh custom_image_name
After the build is complete, you can find the statically linked binary StratoVirt in the path: target/${arch}-unknown-linux-musl/release/stratovirt
.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。