Skip to content

Day 2: 设置Zig开发环境

欢迎来到第二天!一个配置良好、运行顺畅的开发环境是高效学习和编程的基石。今天,我们将一步步完成Zig的安装和环境配置。Zig的工具链非常优秀,它不仅是编译器,还集成了构建系统、格式化工具和包管理器,并且原生支持跨平台编译,无需复杂的配置。

首先,我们需要从官方网站获取Zig的最新版本。

  1. 访问官网:打开浏览器,访问 ziglang.org/download/。

  2. 选择版本:找到 Version 0.15.1。根据你的操作系统(Windows, macOS, Linux)和CPU架构(x86_64, AArch64),下载对应的压缩包。

  3. 校验文件 (可选但推荐):为了确保下载的文件没有被篡改,你可以校验其SHA256哈希值。在下载页面,每个文件旁边都有一个对应的 .minisig 文件和SHA256校验和。在终端中运行以下命令(以Linux为例):

    Terminal window
    # 计算下载文件的SHA256哈希
    sha256sum zig-linux-x86_64-0.15.1.tar.xz
    # 将输出结果与官网提供的值进行比对
  4. 解压文件:将下载的压缩包解压到一个你喜欢的目录。例如,在Linux或macOS上,你可以解压到 /usr/local/ 或用户主目录下的 dev/ 文件夹;在Windows上,可以解压到 C:\dev\zig。

    Terminal window
    # Linux / macOS
    mkdir -p ~/dev
    tar -xf zig-linux-x86_64-0.15.1.tar.xz -C ~/dev
    # 将文件夹重命名以便管理
    mv ~/dev/zig-linux-x86_64-0.15.1 ~/dev/zig-0.15.1

一个好的代码编辑器能极大提升你的编程效率。以下是针对主流编辑器的配置建议:

  • Visual Studio Code (VS Code):这是目前对Zig支持最好的编辑器之一。

    • 安装 Zig Language 插件。它提供了语法高亮、代码补全、错误提示等功能。
    • 插件会自动查找zls(Zig Language Server),如果找不到,你需要在VS Code的设置中手动指定zls的路径。
  • Vim / Neovim:

    • 使用插件管理器(如 vim-plug 或 packer.nvim)安装 zig.vim 以获得语法高亮。
    • 通过 coc.nvim 或内置的LSP客户端,配置 zls 以实现智能提示和代码导航。

Zig工具链自带了几个非常有用的命令:

  • zig fmt <file.zig>:自动格式化你的代码,使其符合官方推荐的风格。保持代码风格一致性是良好协作的基础。
  • zig build:运行项目根目录下的 build.zig 文件,执行构建任务。这是Zig强大的声明式构建系统的入口。
  • zls:Zig Language Server,为编辑器提供智能支持。它通常位于解压后的Zig目录中。

为了能在任何终端窗口中直接使用 zig 命令,你需要将Zig的安装路径添加到系统的 PATH 环境变量中。

  • Linux / macOS: 编辑你的shell配置文件(如 ~/.bashrc, ~/.zshrc),在文件末尾添加:

    Terminal window
    # 将路径替换为你的实际解压路径
    export ZIG_HOME="$HOME/dev/zig-0.15.1"
    export PATH="$ZIG_HOME:$PATH"

    保存后,运行 source ~/.bashrc 或 source ~/.zshrc 使其生效。

  • Windows:

    1. 在搜索栏中输入“环境变量”,选择“编辑系统环境变量”。
    2. 在“系统属性”窗口中,点击“环境变量”按钮。
    3. 在“系统变量”部分,找到并选中 Path,然后点击“编辑”。
    4. 点击“新建”,然后输入你的Zig解压路径(例如 C:\dev\zig-0.15.1)。
    5. 一路点击“确定”保存。

为了验证配置是否成功,打开一个新的终端窗口,输入 zig version,如果能看到 0.15.1,说明配置成功!

现在,让我们用配置好的环境来编译和运行昨天的 “Hello, World!” 程序。

  1. 创建一个名为 hello.zig 的文件,内容如下:
    const std = @import("std");
    pub fn main() !void {
    std.debug.print("Hello from Zig!\n", .{});
    }
  2. 在终端中,使用 zig run 命令来编译并立即执行它:
    Terminal window
    zig run hello.zig
    你应该会在屏幕上看到 Hello from Zig! 的输出。zig run 会在后台进行编译,并将生成的可执行文件缓存在 zig-cache 目录中,如果源文件未改变,下次运行会非常快。

挑战一下自己,尝试Zig强大的交叉编译功能!

如果你当前使用的是x86_64架构的电脑(大部分台式机和笔记本都是),尝试将 hello.zig 编译成ARM架构(如树莓派或苹果M系列芯片)的可执行文件。

Terminal window
# 编译为AArch64架构的Linux可执行文件
zig build-exe hello.zig -target aarch64-linux
# 编译为AArch64架构的macOS可执行文件
zig build-exe hello.zig -target aarch64-macos

你不需要安装任何额外的工具链,Zig原生支持!zig targets 命令可以查看所有支持的目标平台。

问:我在Windows上使用WSL (Windows Subsystem for Linux),应该安装哪个版本?

答:如果你主要在WSL环境内进行开发,建议下载并安装Linux版本的Zig。这样可以更好地与Linux生态系统集成。如果你希望在Windows原生环境和WSL之间切换,可以两者都安装,并在各自的环境中配置好 PATH。

问:在macOS上,Homebrew可以安装Zig吗?

答:可以,brew install zig 是一个便捷的安装方式。但请注意,Homebrew的版本可能会稍有延迟。对于本教程,我们推荐使用从官网下载的指定版本,以确保所有示例都能正常工作。

今天,你成功搭建了Zig开发环境,并体验了其强大的工具链,包括格式化、编译、运行和交叉编译。一个好的开端是成功的一半。从明天开始,我们将正式进入Zig的语法世界,探索它的基本数据类型和变量。