Ubuntu下安装capy-template后执行zig build出现大量Windows编译错误
问题:Ubuntu下编译capy-template出现Windows相关编译错误
在Ubuntu系统上通过git安装capy-template后,执行zig build时出现大量Windows相关编译错误,作为Zig新手完全不清楚原因。错误输出如下:
$ zig build zig build-exe okp Debug native: error: the following command failed with 520 compilation errors: /usr/local/zig/zig build-exe /home/nil/zig/capy/okp/src/main.zig -lgtk+-3.0 -lc --cache-dir /home/nil/zig/capy/okp/zig-cache --global-cache-dir /home/nil/.cache/zig --name okp --mod capy:zigimg,zigwin32:/home/nil/zig/capy/okp/.zigmod/deps/git/github.com/capy-ui/capy/src/main.zig --mod zigimg::/home/nil/zig/capy/okp/.zigmod/deps/git/github.com/capy-ui/capy/vendor/zigimg/zigimg.zig --mod zigwin32::/home/nil/zig/capy/okp/.zigmod/deps/git/github.com/capy-ui/capy/vendor/zigwin32/win32.zig --deps zigwin32,capy --subsystem native --listen=- Build Summary: 0/3 steps succeeded; 1 failed (disable with --summary none) run transitive failure +- run okp transitive failure +- zig build-exe okp Debug native 520 errors .zigmod/deps/git/github.com/capy-ui/capy/vendor/zigwin32/win32/zig.zig:142:32: error: invalid builtin function: '@intToPtr' .zigmod/deps/git/github.com/capy-ui/capy/vendor/zigwin32/win32/zig.zig:161:63: error: invalid builtin function: '@ptrToInt' ... ...
解决办法
- 检查Zig版本兼容性:
@intToPtr和@ptrToInt是Zig旧版本的内置函数,Zig 0.11及以上版本已弃用,替换为@ptrCast和@intCast。确认你的Zig版本,使用capy官方推荐的版本(可查看capy仓库README)。若版本过高,降级到兼容的旧版本(如0.10.x系列)。 - 排除Windows依赖编译:capy在Linux下应仅编译GTK相关代码,不应引入zigwin32:
- 检查项目的
build.zig文件,确认是否错误强制引入zigwin32依赖; - 执行
zigmod clean清除缓存,再重新运行zig build;
- 检查项目的
- 更新capy-template到最新版:可能是模板依赖配置存在问题,拉取最新代码重新初始化项目:
cd /home/nil/zig/capy git pull origin main rm -rf okp zig init-exe --template capy cd okp zig build - 手动调整zigwin32依赖:若上述方法无效,编辑项目的
zigmod.yml文件,移除不必要的zigwin32依赖声明,或替换为兼容当前Zig版本的zigwin32分支。
内容的提问来源于stack exchange,提问作者joe budd
相关产品推荐
相关产品推荐

