DragonOS/docs/userland/appdev/rust-quick-start.md
LoGin 182b778a3c
chore: 适配dadk 0.1.11 (#777)
* chore: 适配dadk 0.1.11
2024-04-28 13:39:51 +08:00

42 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Rust应用开发快速入门
## 编译环境
  DragonOS与Linux具有部分二进制兼容性因此可以使用Linux的Rust编译器进行编译但是需要进行一些配置
您可以参考DragonOS的`tools/bootstrap.sh`中,`initialize_userland_musl_toolchain()`函数的实现,进行配置。
或者只要运行一下bootstrap.sh就可以了。
主要是因为DragonOS还不支持动态链接但是默认的工具链里面包含了动态链接解释器相关的代码因此像脚本内那样进行替换就能运行。
## 配置项目
### 从模板创建
:::{note}
该功能需要dadk 0.1.4及以上版本方能支持
:::
1. 使用DragonOS的tools目录下的`bootstrap.sh`脚本初始化环境
2. 在终端输入`cargo install cargo-generate`
3. 在终端输入
```shell
cargo generate --git https://github.com/DragonOS-Community/Rust-App-Template
```
即可创建项目。如果您的网络较慢,请使用镜像站
```shell
cargo generate --git https://git.mirrors.dragonos.org/DragonOS-Community/Rust-App-Template
```
4. 使用`cargo run`来运行项目
5. 在DragonOS的`user/dadk/config`目录下,使用`dadk new`命令,创建编译配置,安装到DragonOS的`/`目录下。
(在dadk的编译命令选项处请使用Makefile里面的`make install`配置进行编译、安装)
6. 编译DragonOS即可安装
### 手动配置
如果您需要移植别的库/程序到DragonOS请参考模板内的配置。
由于DragonOS目前不支持动态链接因此目前需要在RUSTFLAGS里面指定`-C target-feature=+crt-static -C link-arg=-no-pie`