quickstart.md 4.1 KB

Quick Start

本指南旨在教您快速上手DADK。

DADK是一个用于管理DragonOS的应用编译打包的工具。您可以通过声明配置文件的方式, 把您的应用程序打包到DragonOS中。

安装

目前,DADK版本与DragonOS的版本是绑定的,一般来说,DragonOS在编译的时候就会帮您安装正确版本的dadk。

如果您需要手动安装,可以在dragonos的user/Makefile中找到匹配的dadk版本。

MIN_DADK_VERSION = 0.2.0

::: warning 注意兼容性变化 请注意,由于dadk重构的原因,0.2.0版本之前的dadk版本将不再兼容。这意味着您升级到0.2.0版本后,将无法再使用它去编译旧版本的DragonOS(可以降级)。 :::

您可以通过以下命令安装dadk:

cargo install --git https://git.mirrors.dragonos.org.cn/DragonOS-Community/DADK.git --tag <版本号>

比如,对于0.2.0版本,您可以使用以下命令安装: (注意版本号前面有个v)

cargo install --git https://git.mirrors.dragonos.org.cn/DragonOS-Community/DADK.git --tag v0.2.0

打包你的第一个应用

在安装完成后,您可以使用dadk来打包您的第一个应用。

使用以下命令进入到DragonOS仓库的user/apps/目录:

cd DragonOS/user/apps/

编写代码

然后,为你的应用创建一个目录:

mkdir myapp
cd myapp

接下来,在该目录下创建一个main.c文件:

touch main.c

并向main.c写入以下内容:


#include <stdio.h>

int main()
{
    printf("Hello World!\n");
    return 0;
}

然后,在该目录下创建一个Makefile文件:

touch Makefile

并向Makefile写入以下内容:

ifeq ($(ARCH), x86_64)
	CROSS_COMPILE=x86_64-linux-musl-
else ifeq ($(ARCH), riscv64)
	CROSS_COMPILE=riscv64-linux-musl-
endif

CC=$(CROSS_COMPILE)gcc

.PHONY: all
all: main.c
	$(CC) -static -o helloworld main.c

.PHONY: install clean
install: all
	mv helloworld $(DADK_CURRENT_BUILD_DIR)/helloworld

clean:
	rm helloworld *.o

编写dadk用户程序配置文件

最后,在DragonOS仓库的user/dadk/config目录下创建一个myapp.toml文件:

cd DragonOS/user/dadk/config
touch myapp.toml

myapp.toml文件中写入以下内容,用于描述你的应用的构建方式:

# 用户程序名称
name = "helloworld"
# 版本号
version = "0.1.0"
# 用户程序描述信息
description = "一个用来测试helloworld的app"

# (可选)默认: false 是否只构建一次,如果为true,DADK会在构建成功后,将构建结果缓存起来,下次构建时,直接使用缓存的构建结果
build-once = false
#  (可选) 默认: false 是否只安装一次,如果为true,DADK会在安装成功后,不再重复安装
install-once = false
# 目标架构
# 可选值:"x86_64", "aarch64", "riscv64"
target-arch = ["x86_64"]

# 任务源
[task-source]
# 构建类型
# 可选值:"build-from_source", "install-from-prebuilt"
type = "build-from-source"
# 构建来源
# "build_from_source" 可选值:"git", "local", "archive"
# "install_from_prebuilt" 可选值:"local", "archive"
source = "local"
# 路径或URL
source-path = "user/apps/helloworld"

# 构建相关信息
[build]
# (可选)构建命令
build-command = "make install"

# 安装相关信息
[install]
# (可选)安装到DragonOS的路径
in-dragonos-path = "/bin"

# clean相关信息
[clean]
# (可选)清除命令
clean-command = "make clean"

上面这就是一个简单的dadk应用的配置文件。完整的模版请见:userapp_config.toml

运行DragonOS

在完成上述步骤后,您可以使用以下命令来运行DragonOS:

make run

更详细的运行命令请参考:构建DragonOS

测试你的应用

在DragonOS启动后,您可以在终端中输入以下命令来测试您的应用:

cd /bin
./helloworld

如果一切正常,您应该会看到以下输出:

Hello World!