Target Overview
A target in Zig consists of:- CPU Architecture - x86_64, aarch64, riscv64, etc.
- Operating System - linux, windows, macos, freestanding, etc.
- ABI - gnu, musl, msvc, etc.
- Object Format - elf, coff, macho, wasm, etc.
lib/std/Target.zig:1-10
Specifying Targets
Standard Target Options
The most common way to configure targets:Default Target
Set a default target when none is specified:lib/std/Build.zig:18-22
Explicit Target
Resolve a specific target directly:Target Components
CPU Architecture
Supported architectures include:Operating Systems
lib/std/Target.zig:18-68
Darwin OS Detection
lib/std/Target.zig:78-90
ABI (Application Binary Interface)
lib/std/Target.zig:739-766
Object Formats
- elf - Executable and Linkable Format (Linux, BSDs)
- coff - Common Object File Format (Windows)
- macho - Mach-O (macOS, iOS)
- wasm - WebAssembly
- c - C source code output
- hex - Intel HEX format
- raw - Raw binary
- spirv - SPIR-V (GPU shaders)
- plan9 - Plan 9 object format
OS Version Ranges
Version Range System
lib/std/Target.zig:372-377
Windows Versions
lib/std/Target.zig:220-250
Linux Versions
lib/std/Target.zig:331-346
Default Version Ranges
lib/std/Target.zig:430-446
CPU Features
Configure specific CPU features:lib/std/Build.zig:628-634
baseline- Default features for the architecture+feature- Enable a feature-feature- Disable a feature
Target-Specific Configuration
Querying Target Properties
File Extensions
lib/std/Target.zig:99-109
Library Extensions
lib/std/Target.zig:111-134
Multi-Target Builds
Build for multiple targets in a single build script:Common Target Patterns
Native Builds
Freestanding Targets
WebAssembly Targets
Target Resolution
TheResolvedTarget type contains the final, resolved target configuration:
lib/std/Build.zig:127
result- The fully resolvedstd.Targetquery- The original target query
Advanced Target Features
Default ABI Selection
lib/std/Target.zig:795-812
PIC Requirements
src/target.zig:49-54
See Also
- Cross-Compilation - Cross-compiling to different targets
- Build System - Complete build.zig reference