从源码构建和测试 WasmEdge

    检查依赖

    WasmEdge 会基于最新版本的 LLVM 来创建我们的每日构建。 如果你想从源码构建的话,需要自己手动来安装下面的这些依赖。你也可以直接使用我们提供的 Docker 镜像来构建, 它支持多个发行版本的 Linux 。

    • GCC 11.1.0 (>= 9.4.0)

    Dockerhub 上的仓库

    1. docker pull wasmedge/wasmedge # 等同于 wasmedge/wasmedge:latest

    可用的标签

    我们的开发环境依赖于 libLLVM-12>=GLIBCXX_3.4.33

    如果用户的系统是比 Ubuntu 20.04 还早的版本,请使用我们定制的 docker 镜像来构建 WasmEdge 。 如果你需要的是在过时版本的操作系统上使用的二进制包,我们也提供了几个基于 manylinux* 发行版本的安装包。

    可移植的 Linux 发行版标签基础镜像提供的依赖Docker 镜像
    manylinux1CentOS 5.11GLIBC <= 2.5
    CXXABI <= 3.4.8
    GLIBCXX <= 3.4.9
    GCC <= 4.2.0
    wasmedge/wasmedge:manylinux1_x86_64
    manylinux2010CentOS 6.10GLIBC <= 2.12
    CXXABI <= 1.3.3
    GLIBCXX <= 3.4.13
    GCC <= 4.5.0
    wasmedge/wasmedge:manylinux2010_x86_64
    manylinux2014CentOS 7.9GLIBC <= 2.17
    CXXABI <= 1.3.7
    GLIBCXX <= 3.4.19
    GCC <= 4.8.0
    wasmedge/wasmedge:manylinux2014_x86_64
    manylinux2014CentOS 7.9GLIBC <= 2.17
    CXXABI <= 1.3.7
    GLIBCXX <= 3.4.19
    GCC <= 4.8.0
    wasmedge/wasmedge:manylinux2014_aarch64

    构建 WasmEdge

    1. 是 wasm 的通用运行时。
      • wasmedge 可以在解释器模式下执行一个 WASM 文件, 也可以在预编译模式下执行一个 WASM so 文件。
      • 你可以通过将 CMAKE 配置项 WASMEDGE_BUILD_TOOLS 设置成 OFF来禁止所有工具的构建。
    2. wasmedgec 是一个 WASM 预编译器。
      • wasmedgec 将一个通用的 WASM 文件编译成 so 文件。
      • 你可以通过将 CMAKE 配置项 WASMEDGE_BUILD_AOT_RUNTIME 设置成 OFF来禁止构建预编译器。
    3. libwasmedge_c.so 是 WasmEdge C API 的共享库。
      • libwasmedge_c.so 提供了访问预编译器和 WASM 运行时的 C 语言 API。
      • 如果 WASMEDGE_BUILD_AOT_RUNTIME 配置项被设置成 , 那么与预编译器相关的 API 都将会返回错误。
    1. # 获取到 wasm docker 镜像后
    2. docker run -it --rm \
    3. -v <path/to/your/wasmedge/source/folder>:/root/wasmedge \
    4. wasmedge/wasmedge:latest
    5. # In docker
    6. cd /root/wasmedge
    7. mkdir -p build && cd build
    8. cmake -DCMAKE_BUILD_TYPE=Release -DWASMEDGE_BUILD_TESTS=ON .. && make -j

    如果用户不需要预编译运行时和编译器特性的话,可以将 CMAKE 配置项 WASMEDGE_BUILD_AOT_RUNTIME 设置成 OFF

    下面所提到的测试只有在构建配置 WASMEDGE_BUILD_TESTS 设置为 ON 的时候才有效。

    1. cd <path/to/wasmedge/build_folder>

    运行应用

    接下来,参考 在 wasmedge 上运行 WebAssembly 字节码程序。