Windows 10/11 安装与配置 Zig 0.13.0:从下载到编译验证的完整教程

#近期单位要搞 网络安全培训**,PPT难以实现场景演示且麻烦、老套,文字又词穷。突发奇想索性把6个场景用HTML5、CSS3、JavaScript、 C编译、封装。效果还满意。**

对不少开发者而言,Zig常常先以"一门新兴系统级语言"的面貌出现;但真正开始尝试时,遇到的第一个问题往往不是语法,而是:该下载哪个版本?Windows上是否需要安装Visual Studio?解压后为什么仍然找不到zig命令?怎样确认C编译器、链接器和资源编译器已经可以正常工作?
与传统开发工具不同,Zig采用自包含压缩包方式发布,不需要复杂的安装向导,也不必单独配置庞大的编译环境。只要正确下载、完整解压并设置Path,便可以同时获得Zig编译器以及C/C++编译、链接和交叉编译能力。
本文源于一个Windows免安装EXE程序的实际封装过程,以经过项目验证的Zig 0.13.0为例,从下载、环境变量配置和版本验证开始,逐步完成第一个Zig程序、C语言程序、Windows资源文件及GUI程序的编译,并集中整理常见故障与处理方法。无论是初次接触Zig的学习者,还是希望使用轻量工具链维护C语言项目的开发者,都可以按照本文步骤搭建一套清晰、可验证、可复现的Windows开发环境。#

Zig 不仅是一门编程语言,也是一套可以编译 Zig、C 和 C++ 代码的工具链。 与许多需要安装向导、单独配置编译器和链接器的开发环境不同,Zig 的官方发行包是一个自包含压缩包:下载、完整解压、把所在目录加入 Path,即可在命令行中使用。

本文以 Windows 10/11 64 位电脑为例,详细说明 Zig 0.13.0 的下载、解压、环境变量设置、安装验证、C语言编译测试、Windows资源编译测试以及常见问题处理方法。该版本与"网络安全培训6个现场演示程序"现有构建环境保持一致,适合复现和维护该项目。

一、安装前准备

1. 确认Windows版本和处理器架构

依次打开:

复制代码
设置 → 系统 → 系统信息 → 系统类型

如果显示"64位操作系统,基于x64的处理器",应下载 Windows x86_64 版本。

本文推荐的基本环境如下:

项目 建议配置
操作系统 Windows 10或Windows 11,64位
处理器 x86_64双核及以上
内存 最低4GB,建议8GB以上
磁盘空间 建议预留500MB以上
安装权限 用户级安装不需要管理员权限
网络 下载时需要;安装和编译可离线进行

Zig 0.13.0版本说明将Windows 10以上的x86_64平台列入支持范围。ARM64电脑应选择aarch64安装包,但如果需要复现当前网络安全培训程序,建议在普通x64 Windows开发电脑上构建。

2. 为什么使用Zig 0.13.0

Zig官网会持续发布新版本,但Zig目前仍处于1.0以前,不同版本之间可能存在命令、标准库或构建行为差异。新项目可以评估官网当前稳定版;复现既有项目时,应优先使用项目原来验证过的版本。

当前培训演示程序使用Zig 0.13.0完成编译,因此本文固定使用0.13.0,以减少因工具链版本变化导致的编译差异。

二、下载Zig 0.13.0

1. 官方下载地址(因为某些原因,下载地址访问困难。可以多试几次🙏)

下载后的文件名应为:

复制代码
zig-windows-x86_64-0.13.0.zip

应确认下载域名为:

复制代码
ziglang.org

不要从来源不明的软件下载站、网盘或群聊附件获取编译器。

2. 可选:计算下载文件的SHA256

打开PowerShell,进入下载目录后执行:

复制代码
Get-FileHash -Algorithm SHA256 ".\zig-windows-x86_64-0.13.0.zip"

该命令可以计算本地压缩包的SHA256。需要严格审计时,可再与Zig官方下载页面公布的校验信息进行比对。

3. 可选:解除Windows下载标记

如果电脑启用了较严格的SmartScreen策略,可以在解压前:

  1. 右键单击下载的ZIP文件;
  2. 选择"属性";
  3. 如果窗口底部出现"解除锁定",勾选该选项;
  4. 点击"应用"和"确定"。

不要为了安装编译器直接关闭杀毒软件或单位安全防护。单位电脑出现拦截时,应由信息部门核验来源和文件哈希后再放行。

三、完整解压Zig

1. 建立开发工具目录

建议建立一个固定、简短、无中文和空格的目录,例如:

复制代码
D:\DevTools

也可以使用当前用户目录:

复制代码
C:\Users\你的用户名\Tools

不建议放在以下位置:

  • ZIP压缩包预览窗口;
  • 临时下载目录;
  • 只读U盘或网络共享目录;
  • 权限严格的 C:\Program Files
  • 层级过深或包含特殊符号的目录。

2. 解压压缩包

右键ZIP文件,选择"全部解压",目标位置填写:

复制代码
D:\DevTools

解压后通常形成:

复制代码
D:\DevTools\zig-windows-x86_64-0.13.0

打开该目录,应看到:

复制代码
zig.exe
lib\
doc\
LICENSE
README.md

其中 zig.exelib 文件夹必须保持原有相对位置。不要只把 zig.exe 复制到其他目录,否则可能出现无法找到标准库或工具链文件的问题。

四、把Zig加入Windows环境变量

Zig无需传统安装程序。所谓"安装",核心就是让Windows能够在任意目录找到 zig.exe

方法一:通过Windows图形界面设置,推荐

  1. 按下 Win + R

  2. 输入 sysdm.cpl,按回车;

  3. 打开"高级"选项卡;

  4. 点击"环境变量";

  5. 在上方"用户变量"区域找到并选中 Path

  6. 点击"编辑";

  7. 点击"新建";

  8. 填入包含 zig.exe 的目录:

    D:\DevTools\zig-windows-x86_64-0.13.0

  9. 连续点击"确定"保存;

  10. 关闭已经打开的CMD、PowerShell、Windows Terminal和VS Code;

  11. 重新打开命令行窗口。

应添加"文件夹路径",不要添加成:

复制代码
D:\DevTools\zig-windows-x86_64-0.13.0\zig.exe

用户级 Path 只对当前Windows账户生效,不需要管理员权限,通常也是开发电脑上更稳妥的选择。

方法二:使用PowerShell设置用户级Path

打开普通PowerShell,执行:

复制代码
$zigPath = "D:\DevTools\zig-windows-x86_64-0.13.0"
$userPath = [Environment]::GetEnvironmentVariable("Path", "User")

if (($userPath -split ";") -notcontains $zigPath) {
    [Environment]::SetEnvironmentVariable(
        "Path",
        "$userPath;$zigPath",
        "User"
    )
}

执行后关闭PowerShell,再重新打开。该命令会在路径尚不存在时加入用户环境变量,避免重复添加。

方法三:仅在当前PowerShell窗口临时使用

如果只是临时测试,不想修改永久环境变量,可以执行:

复制代码
$env:Path += ";D:\DevTools\zig-windows-x86_64-0.13.0"

该设置只在当前PowerShell窗口有效,关闭窗口后自动失效。

五、验证Zig是否安装成功

重新打开CMD,依次执行:

复制代码
zig version
where zig
zig env

第一条命令应输出:

复制代码
0.13.0

第二条命令应显示实际调用的程序路径,例如:

复制代码
D:\DevTools\zig-windows-x86_64-0.13.0\zig.exe

第三条命令会显示Zig自身路径、库目录、目标平台等环境信息。如果三条命令均可正常执行,说明Zig已经正确安装。

在PowerShell中也可以执行:

复制代码
Get-Command zig
zig version
zig env

六、完成第一次Zig程序测试

建立测试目录:

复制代码
mkdir D:\ZigTest
cd /d D:\ZigTest

新建 hello.zig,输入:

复制代码
const std = @import("std");

pub fn main() void {
    std.debug.print("Hello, Zig!\n", .{});
}

直接编译并运行:

复制代码
zig run hello.zig

正常输出:

复制代码
Hello, Zig!

也可以只编译:

复制代码
zig build-exe hello.zig

编译完成后运行:

复制代码
hello.exe

七、测试Zig的C语言编译功能

当前网络安全培训程序的Windows启动器使用原生C编写,因此还应测试 zig cc

D:\ZigTest 中新建 hello.c

复制代码
#include <stdio.h>

int main(void) {
    printf("Zig C compiler OK!\n");
    return 0;
}

执行:

复制代码
zig cc hello.c -o hello-c.exe

运行:

复制代码
hello-c.exe

正常输出:

复制代码
Zig C compiler OK!

进一步测试当前项目使用的Windows x64目标:

复制代码
zig cc -target x86_64-windows-gnu hello.c -o hello-win64.exe
hello-win64.exe

如果程序能够正常运行,说明C编译、链接和Windows x64目标环境均可使用。

八、测试Windows资源编译器

培训演示EXE需要写入应用清单、版本号和产品说明,因此使用Zig自带的Windows资源编译器。

先执行:

复制代码
zig rc --help

如果显示资源编译参数说明,说明 zig rc 可用。

项目中典型的资源编译命令为:

复制代码
zig rc /c 65001 app.rc app.res

参数含义:

  • /c 65001:按照UTF-8代码页处理资源文件;
  • app.rc:Windows资源源文件;
  • app.res:生成的资源文件。

九、在VS Code中使用Zig

VS Code并不是编译所必需,但适合编辑项目中的HTML、CSS、JavaScript、C和资源文件。

官方下载地址:Download Visual Studio Code - Free AI Code Editor for Mac, Linux, Windows

安装VS Code后:

  1. 完全退出并重新启动VS Code,确保它读取新的 Path
  2. 打开"终端"→"新建终端";
  3. 执行 zig version
  4. 如果显示 0.13.0,说明VS Code终端已识别Zig。

只维护当前演示程序时,不强制安装Zig扩展。需要开发Zig源程序时,可以再安装语法高亮和ZLS语言服务。编辑C代码时,可选装Microsoft C/C++扩展,但实际编译仍由Zig完成。

十、与网络安全培训演示项目配合使用

完整开发源代码通常包含:

复制代码
app.html
native_launcher.c
app.rc
app.manifest
app_html.inc
generate_embedded_html.js

其中:

  • app.html:六个案例和宣传页界面;
  • native_launcher.c:本机服务和浏览器启动器;
  • app.rc:EXE版本资源;
  • app.manifest:Windows应用清单;
  • app_html.inc:转换成C字节数组的内嵌页面;
  • generate_embedded_html.js:重新生成内嵌页面的辅助脚本。

如果修改了 app.html,应先重新生成 app_html.inc,再编译EXE。生成脚本需要Node.js,但Node.js仅是开发辅助工具,不是目标电脑的运行依赖。

资源编译:

复制代码
zig rc /c 65001 app.rc app.res

Windows CMD中的典型发布版编译命令:

复制代码
zig cc -target x86_64-windows-gnu -O2 -s ^
-ffunction-sections -fdata-sections ^
native_launcher.c app.res ^
-o "网络安全培训演示.exe" ^
-lws2_32 -lshell32 ^
-Wl,--subsystem,windows ^
-Wl,--entry,WinMainCRTStartup ^
-Wl,--gc-sections

主要参数:

参数 作用
-target x86_64-windows-gnu 生成Windows 64位程序
-O2 开启发布版优化
-s 移除调试符号,缩小EXE
-ffunction-sections 将函数放入独立区段
-fdata-sections 将数据放入独立区段
-lws2_32 链接Windows网络组件
-lshell32 链接Windows外壳和浏览器调用功能
--subsystem,windows 生成无控制台窗口的GUI程序
--entry,WinMainCRTStartup 指定Windows GUI入口
--gc-sections 清理未使用代码和数据

编译完成后,应进一步检查:

  1. EXE是否为Windows x64 GUI程序;
  2. 页面是否已完整嵌入;
  3. 设置窗口能否保存单位名称、开发人员姓名和Logo;
  4. 本机服务是否只监听 127.0.0.1
  5. 安全自检是否全部通过;
  6. 最终EXE的SHA256是否已经记录。

十一、常见问题及处理方法

1. 提示"zig不是内部或外部命令"

执行:

复制代码
where zig

如果找不到,重点检查:

  • Path 是否指向包含 zig.exe 的文件夹;
  • 是否误把ZIP文件路径加入了 Path
  • 是否只移动了 zig.exe
  • 修改环境变量后是否重新打开了命令行;
  • VS Code是否已经完全退出并重新启动。

2. zig version显示的不是0.13.0

执行:

复制代码
where zig

如果返回多个路径,说明电脑中存在多个Zig版本。Windows会优先调用 Path 中排在前面的版本。可以把0.13.0目录移动到上方,或者删除不再使用的旧路径。

3. 双击zig.exe后窗口一闪而过

这是正常现象。Zig是命令行工具,不通过双击操作,应在CMD、PowerShell或VS Code终端中执行:

复制代码
zig version

4. 提示找不到标准库或lib目录

通常是因为只复制了 zig.exe。重新完整解压官方ZIP,并保留 zig.exelib及其他目录的原始结构。

5. VS Code终端仍然找不到Zig

关闭所有VS Code窗口,在任务管理器中确认 Code.exe 已退出,然后重新打开。如果仍然失败,可在VS Code的CMD终端执行:

复制代码
echo %PATH%
where zig

如果使用PowerShell终端,则执行:

复制代码
$env:Path
Get-Command zig

检查新的Zig路径是否已经进入该终端环境。

6. 出现"Access is denied"或无法生成EXE

应检查:

  • 项目是否放在只读目录;
  • EXE是否正在运行并被Windows占用;
  • 当前文件夹是否具有写入权限;
  • 是否在ZIP预览窗口或网络共享目录中直接编译;
  • 安全软件是否隔离了刚生成的EXE。

建议把项目完整复制到:

复制代码
D:\Projects\SecurityTrainingDemo

关闭正在运行的旧EXE后重新编译。

7. SmartScreen或杀毒软件拦截

Zig编译生成但未使用商业代码签名证书签名的EXE,可能显示"未知发布者"。不要简单关闭安全防护。应保存源码、编译命令、编译器版本和SHA256,由本单位信息部门核验后放行;有条件时使用单位代码签名证书签名发布版EXE。

8. 中文文件名或路径引发脚本问题

Zig能够处理多数Unicode路径,但部分批处理、辅助脚本或第三方工具仍可能对中文路径支持不一致。建议开发工具和源码目录使用简短英文路径,最终交付文件可以使用中文名称。

十二、多版本管理、升级与卸载

Zig官方压缩包是自包含的,因此多个版本可以并存:

复制代码
D:\DevTools\zig-0.13.0
D:\DevTools\zig-0.15.1
D:\DevTools\zig-0.16.0

实际使用哪个版本取决于 Path 的先后顺序。升级前不要直接覆盖原目录,建议:

  1. 把新版本解压到独立文件夹;
  2. 调整 Path
  3. 执行 zig version确认;
  4. 重新编译并完成测试;
  5. 确认项目兼容后再决定是否删除旧版本。

卸载Zig时:

  1. 从用户环境变量 Path 中删除对应目录;
  2. 删除Zig解压文件夹;
  3. 重新打开命令行并执行 where zig检查。

删除开发电脑上的Zig不会影响已经编译完成的免安装EXE。

十三、安装验收清单

完成以下检查,即可认为开发环境配置成功:

  • 安装包来自 ziglang.org
  • 已完整解压,而不是在ZIP中直接运行;
  • zig.exelib目录保持原始结构;
  • Zig目录已加入用户级 Path
  • zig version显示 0.13.0
  • where zig指向预期目录;
  • zig env能够正常输出环境信息;
  • zig run hello.zig测试通过;
  • zig cc hello.c -o hello-c.exe测试通过;
  • zig rc --help能够显示资源编译帮助;
  • VS Code新终端能够识别 zig命令;
  • 已记录编译器版本、编译命令和最终EXE的SHA256。

结语

Zig在Windows上的安装并不复杂:从官网下载与项目匹配的压缩包,完整解压到固定目录,把包含 zig.exe 的文件夹加入用户级 Path,再通过 zig versionzig cczig rc完成验证即可。

对于网络安全培训演示程序,Zig的价值主要不在于让培训电脑增加一套运行环境,而在于开发阶段把HTML交互页面、本机服务、Windows资源和C启动器封装成一个可离线运行的x64 EXE。开发工具留在开发电脑,培训电脑只保留经过核验的交付包,能够兼顾维护便利、现场操作和安全边界。

(整理不易,若本文对你有所帮助,欢迎点赞、关注;如有疑问或建议,也期待与你交流探讨!

相关推荐
2601_962381582 小时前
Mac和Windows,哪种电脑适合新手学Python|数智码力分享
windows·python·mac·编程环境·学习入门
会飞的拖把3 小时前
Python序列详解:列表、元组、字符串的通用操作(超详细版)
开发语言·windows·python
阿沐沐,5 小时前
Claude Code 安装教程:Windows、WSL 2 与 macOS
windows·macos
水饺编程5 小时前
编程数学:三角函数基础01,直角三角函数
c语言·c++·windows·visual studio
kaixin_啊啊5 小时前
PandaWiki 本地 AI 知识库实战:文档导入、智能问答与远程访问
linux·服务器·人工智能·windows·ai
檀越剑指大厂6 小时前
OpenClaw 实测:Windows 安装、模型配置、电脑任务执行与公网访问
windows
西西弗Sisyphus6 小时前
Qt 实现一个 Windows 启动项查看器
开发语言·windows·qt
嘿嘿-6618 小时前
Windows 一键使用 GPT-6 Astra:Codex CLI 配置教程
java·人工智能·windows·gpt·chatgpt·web
郝学胜-神的一滴19 小时前
Qt 高级编程 045:坐标体系深度实战
开发语言·c++·windows·python·qt·程序人生