PBXB64 [options] <input files>
Output Control
| Option | Description |
|---|---|
-o <file> | Set output executable path (default: a.exe) |
-c | Compile only - produce object file (.obj), skip linking |
-S | Stop after assembly generation (.asm) |
--emit-ast | Emit AST dump to stdout for debugging |
--emit-ir | Emit IR dump to stdout |
--emit-asm | Emit assembly listing to stdout |
--emit-obj | Force object file emission (alias for -c) |
Preprocessor (V8 Enhanced)
| Option | Description |
|---|---|
-E | Preprocess only - output expanded source to stdout |
-I <path> | Add user include search path (checked first) |
-isystem <path> | Add system include path (suppresses warnings) |
-DNAME | Define macro NAME=1 |
-DNAME=value | Define macro with explicit value |
-UNAME | Undefine previously defined macro |
-std=c17 | Enable C17 standard mode (default in V8) |
-ffreestanding | Freestanding environment (no runtime dependencies) |
Optimization Levels
| Option | Description |
|---|---|
-O0 | No optimization (default, fastest compile, debug-friendly) |
-O1 | Basic optimizations: dead code elimination, constant folding |
-O2 | Aggressive: inlining, loop unrolling, register allocation tuning |
-O3 | Maximum optimization (may increase binary size) |
Target & General Options
| Option | Description |
|---|---|
--target <triple> | Set target triple (default: x86_64-pc-windows-msvc) |
--entry <symbol> | Override default entry point symbol |
-v, --verbose | Verbose output - show compilation steps and paths |
--version | Print compiler version and exit |
V8 Tip: Combine
-E -I core/include/c17 -DDEBUG=1 program.c to inspect preprocessed output with custom macros and headers.