惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
月光博客
月光博客
Last Week in AI
Last Week in AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
IT之家
IT之家
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
S
SegmentFault 最新的问题
宝玉的分享
宝玉的分享
博客园 - Franky
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Cloudflare Blog
博客园 - 司徒正美
爱范儿
爱范儿

网上冲浪指南

成都双流区凤翔湖公园 四川雅安龙苍沟 Zig 中的类型替换 在 Zig 中实现 TaskCompletionSource 自定义 zig test runner 用 Zig 实现一个简单的任务队列 密码保护:借助图生图模型创建电子桌游地图 用 Cloudflare 给 WordPress 减负 接二连三修电脑 修复小新 Pad Pro 2021 蓝牙耳机没有声音的问题 手动升级一下 OpenWRT 如何安全地面向公网提供本地 NAS 上的 Web 服务 徒步·金堂开照寺二道坪山脊环线 Hello, ActivityPub 迁移博客到 VPS 优化博客网站的性能 解决 Qsirch 无法搜索文件夹的问题 N100 小主机遭遇 NVMe 硬盘故障:一次系统的诊断与反思 外接显示器 EDID 损坏如何处理 How to switch GitHub CLI account automatically
如何配置 ZigBrains
Zeeko · 2026-08-23 · via 网上冲浪指南

ZigBrains 是 JetBrains IDE 上的 Zig 语言支持插件,集成了 ZLS,基本上可以开箱即用。但将它配置成一个接近高效的代码开发环境却费了我不少功夫。

无法执行 zig build --watch

/ 目录跟 HOME 目录不在同一个 btrfs 子卷下,导致 watch 命令报错:CrossDevice

EXDEV The filesystem object indicated by path resides within a filesystem subvolume (e.g., btrfs(5)) which uses a different fsid than its root superblock.
https://www.man7.org/linux/man-pages/man2/fanotify_mark.2.html

最简单是解决方案是用 anyzig 将 zig 库安装到 HOME 目录下。如果你的项目还依赖了 /usr/include 下的库,则还需要修改 zig 源码: https://github.com/ziglang/zig/issues/20670#issue-2415216229 幸运的是不用重新编译 Zig 本体

--- a/lib/std/Build/Watch.zig
+++ b/lib/std/Build/Watch.zig
@@ -175,7 +175,7 @@ const Os = switch (builtin.os.tag) {
                                     .ADD = true,
                                     .ONLYDIR = true,
                                 }, fan_mask, path.root_dir.handle.fd, path.subPathOrDot()) catch |err| {
-                                    fatal("unable to watch {}: {s}", .{ path, @errorName(err) });
+                                    std.log.warn("unable to watch {}: {s}", .{ path, @errorName(err) });
                                 };
                             }
                             break :rs dh_gop.value_ptr;

ZigBrains 不展示 Inlay Hints

  1. 关闭所有的 CLion 实例
  2. 打开 ~/.config/JetBrains/CLion20xx.x/options/editor.xml
  3. LSPInlayHintsProvider 设置为 true

配置 ZLS 的 Build On Save

ZLS 默认只提供语法分析功能,但是 Zig 的 comptime 特性使得部分错误只会在编译期才能暴露出来,比如基于 comptime 实现的多态。所以 ZLS 还提供了一个 Build On Save 功能,可以将编译错误也加入到 LSP 的错误提示中。

首先要在 build.zig 添加一个 check 目标

接着修改 ZigBrains 中的选项:

  • Enable build on save: true
  • Build on save args: check -fincremental

因为 ZLS 会使用 --watch 参数执行 check ,所以请确保 zig build check --watch 能正常运行。

panic: REX_GOTPCRELX

根据这里的说明,需要为所有的 C 文件添加编译 flag -fPIEhttps://github.com/floooh/dcimgui/issues/10#issuecomment-4023330366

或者你也可以选择先不用 -fincremental 选项,等 Zig 修复这个问题再说。

fatal linker error: unhandled relocation type R_X86_64_PC64 at offset 0x1c

如果你遇到了这个问题,大概率你用的是 Arch Linux,并且没有在用 Arch 打包的 Zig。根据这个问题讨论区的描述,彻底解决需要等到 Zig 0.17.0 发布,目前的临时方案有3个:

  1. 使用 LLVM:addExecutable(.{.use_llvm = true, .use_lld = true}),不过这样会显著降低编译速度
  2. 降级 glibc
  3. 参考 Arch 包,把修复 cherry-pick 到 0.16.0,然后重新编译 Zig

undefined symbol: main

我这边遇到这个问题主要发生在 zig build test -fincremental --watch ,尝试了很久也没能解决这个问题,只好先放弃增量编译选项,不启用 LLVM 的话,其实编译速度还是很快的。