调用zig build run命令时能否向目标程序传递命令行参数?
Zig 运行项目时传递命令行参数的方法
zig build run 传参
直接把参数跟在zig build run后面时,Zig 会把后续字段识别为要执行的构建步骤名,所以才会报Cannot run step 'foo' because it does not exist的错误。
要给目标程序传参,只需要在程序参数前加--作为分隔,告诉 Zig 构建系统后面的内容不要当构建参数解析,直接透传给编译生成的二进制即可,正确写法:
zig build run -- foo bar
这个写法的执行效果和你直接运行zig-out/bin/<my project's name> foo bar完全一致,用官方标准模板生成的build.zig不需要做任何额外配置,默认就支持这种透传逻辑。
zig run 直接运行源码传参
规则和上面完全一致,同样用--分隔 Zig 自身的运行参数和你要传给程序的参数:
zig run src/main.zig -- foo bar
--作为透传参数分隔符是命令行工具的通用约定,只是目前 Zig 的官方文档没有明确提到这个用法,相关资料也少,新用户很容易踩这个坑。
内容的提问来源于stack exchange,提问作者hippietrail
相关产品推荐
相关产品推荐

