mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
langref: update target section
* remove outdated information * add new information closes #17032 closes #17044
This commit is contained in:
parent
0e856da224
commit
8c9efc95a1
1 changed files with 23 additions and 251 deletions
|
|
@ -11460,260 +11460,32 @@ pub fn main() !void {
|
||||||
{#header_close#}
|
{#header_close#}
|
||||||
{#header_open|Targets#}
|
{#header_open|Targets#}
|
||||||
<p>
|
<p>
|
||||||
Zig supports generating code for all targets that LLVM supports. Here is
|
<strong>Target</strong> refers to the computer that will be used to run an executable.
|
||||||
what it looks like to execute <code>zig targets</code> on a Linux x86_64
|
It is composed of the CPU architecture, the set of enabled CPU features, operating system,
|
||||||
computer:
|
minimum and maximum operating system version, ABI, and ABI version.
|
||||||
</p>
|
</p>
|
||||||
{#shell_samp#}$ zig targets
|
|
||||||
Architectures:
|
|
||||||
arm
|
|
||||||
v8_4a
|
|
||||||
v8_3a
|
|
||||||
v8_2a
|
|
||||||
v8_1a
|
|
||||||
v8
|
|
||||||
v8r
|
|
||||||
v8m_baseline
|
|
||||||
v8m_mainline
|
|
||||||
v7
|
|
||||||
v7em
|
|
||||||
v7m
|
|
||||||
v7s
|
|
||||||
v7k
|
|
||||||
v7ve
|
|
||||||
v6
|
|
||||||
v6m
|
|
||||||
v6k
|
|
||||||
v6t2
|
|
||||||
v5
|
|
||||||
v5te
|
|
||||||
v4t
|
|
||||||
armeb
|
|
||||||
v8_4a
|
|
||||||
v8_3a
|
|
||||||
v8_2a
|
|
||||||
v8_1a
|
|
||||||
v8
|
|
||||||
v8r
|
|
||||||
v8m_baseline
|
|
||||||
v8m_mainline
|
|
||||||
v7
|
|
||||||
v7em
|
|
||||||
v7m
|
|
||||||
v7s
|
|
||||||
v7k
|
|
||||||
v7ve
|
|
||||||
v6
|
|
||||||
v6m
|
|
||||||
v6k
|
|
||||||
v6t2
|
|
||||||
v5
|
|
||||||
v5te
|
|
||||||
v4t
|
|
||||||
aarch64
|
|
||||||
v8_4a
|
|
||||||
v8_3a
|
|
||||||
v8_2a
|
|
||||||
v8_1a
|
|
||||||
v8
|
|
||||||
v8r
|
|
||||||
v8m_baseline
|
|
||||||
v8m_mainline
|
|
||||||
aarch64_be
|
|
||||||
v8_4a
|
|
||||||
v8_3a
|
|
||||||
v8_2a
|
|
||||||
v8_1a
|
|
||||||
v8
|
|
||||||
v8r
|
|
||||||
v8m_baseline
|
|
||||||
v8m_mainline
|
|
||||||
avr
|
|
||||||
bpfel
|
|
||||||
bpfeb
|
|
||||||
hexagon
|
|
||||||
mips
|
|
||||||
mipsel
|
|
||||||
mips64
|
|
||||||
mips64el
|
|
||||||
msp430
|
|
||||||
powerpc
|
|
||||||
powerpc64
|
|
||||||
powerpc64le
|
|
||||||
r600
|
|
||||||
amdgcn
|
|
||||||
riscv32
|
|
||||||
riscv64
|
|
||||||
sparc
|
|
||||||
sparc64
|
|
||||||
sparcel
|
|
||||||
s390x
|
|
||||||
thumb
|
|
||||||
v8_4a
|
|
||||||
v8_3a
|
|
||||||
v8_2a
|
|
||||||
v8_1a
|
|
||||||
v8
|
|
||||||
v8r
|
|
||||||
v8m_baseline
|
|
||||||
v8m_mainline
|
|
||||||
v7
|
|
||||||
v7em
|
|
||||||
v7m
|
|
||||||
v7s
|
|
||||||
v7k
|
|
||||||
v7ve
|
|
||||||
v6
|
|
||||||
v6m
|
|
||||||
v6k
|
|
||||||
v6t2
|
|
||||||
v5
|
|
||||||
v5te
|
|
||||||
v4t
|
|
||||||
thumbeb
|
|
||||||
v8_4a
|
|
||||||
v8_3a
|
|
||||||
v8_2a
|
|
||||||
v8_1a
|
|
||||||
v8
|
|
||||||
v8r
|
|
||||||
v8m_baseline
|
|
||||||
v8m_mainline
|
|
||||||
v7
|
|
||||||
v7em
|
|
||||||
v7m
|
|
||||||
v7s
|
|
||||||
v7k
|
|
||||||
v7ve
|
|
||||||
v6
|
|
||||||
v6m
|
|
||||||
v6k
|
|
||||||
v6t2
|
|
||||||
v5
|
|
||||||
v5te
|
|
||||||
v4t
|
|
||||||
x86
|
|
||||||
x86_64 (native)
|
|
||||||
xcore
|
|
||||||
nvptx
|
|
||||||
nvptx64
|
|
||||||
lanai
|
|
||||||
wasm32
|
|
||||||
wasm64
|
|
||||||
|
|
||||||
Operating Systems:
|
|
||||||
freestanding
|
|
||||||
ananas
|
|
||||||
cloudabi
|
|
||||||
dragonfly
|
|
||||||
freebsd
|
|
||||||
fuchsia
|
|
||||||
ios
|
|
||||||
kfreebsd
|
|
||||||
linux (native)
|
|
||||||
lv2
|
|
||||||
macos
|
|
||||||
netbsd
|
|
||||||
openbsd
|
|
||||||
solaris
|
|
||||||
windows
|
|
||||||
haiku
|
|
||||||
minix
|
|
||||||
rtems
|
|
||||||
nacl
|
|
||||||
cnk
|
|
||||||
aix
|
|
||||||
cuda
|
|
||||||
nvcl
|
|
||||||
amdhsa
|
|
||||||
ps4
|
|
||||||
elfiamcu
|
|
||||||
tvos
|
|
||||||
wasi
|
|
||||||
watchos
|
|
||||||
mesa3d
|
|
||||||
contiki
|
|
||||||
amdpal
|
|
||||||
zen
|
|
||||||
uefi
|
|
||||||
|
|
||||||
C ABIs:
|
|
||||||
none
|
|
||||||
gnu (native)
|
|
||||||
gnuabin32
|
|
||||||
gnuabi64
|
|
||||||
gnueabi
|
|
||||||
gnueabihf
|
|
||||||
gnux32
|
|
||||||
code16
|
|
||||||
eabi
|
|
||||||
eabihf
|
|
||||||
android
|
|
||||||
musl
|
|
||||||
musleabi
|
|
||||||
musleabihf
|
|
||||||
msvc
|
|
||||||
itanium
|
|
||||||
cygnus
|
|
||||||
coreclr
|
|
||||||
simulator
|
|
||||||
|
|
||||||
Available libcs:
|
|
||||||
aarch64_be-linux-gnu
|
|
||||||
aarch64_be-linux-musl
|
|
||||||
aarch64-linux-gnu
|
|
||||||
aarch64-linux-musleabi
|
|
||||||
armeb-linux-gnueabi
|
|
||||||
armeb-linux-gnueabihf
|
|
||||||
armeb-linux-musleabi
|
|
||||||
armeb-linux-musleabihf
|
|
||||||
arm-linux-gnueabi
|
|
||||||
arm-linux-gnueabihf
|
|
||||||
arm-linux-musleabi
|
|
||||||
arm-linux-musleabihf
|
|
||||||
x86-linux-gnu
|
|
||||||
x86-linux-musl
|
|
||||||
mips64el-linux-gnuabi64
|
|
||||||
mips64el-linux-gnuabin32
|
|
||||||
mips64el-linux-musl
|
|
||||||
mips64-linux-gnuabi64
|
|
||||||
mips64-linux-gnuabin32
|
|
||||||
mips64-linux-musl
|
|
||||||
mipsel-linux-gnu
|
|
||||||
mipsel-linux-musl
|
|
||||||
mips-linux-gnu
|
|
||||||
mips-linux-musl
|
|
||||||
nios2-linux-gnu
|
|
||||||
powerpc64le-linux-gnu
|
|
||||||
powerpc64le-linux-musl
|
|
||||||
powerpc64-linux-gnu
|
|
||||||
powerpc64-linux-musl
|
|
||||||
powerpc-linux-gnu
|
|
||||||
powerpc-linux-musl
|
|
||||||
riscv32-linux-musl
|
|
||||||
riscv64-linux-gnu
|
|
||||||
riscv64-linux-musl
|
|
||||||
s390x-linux-gnu
|
|
||||||
s390x-linux-musl
|
|
||||||
sparc-linux-gnu
|
|
||||||
sparc64-linux-gnu
|
|
||||||
wasm32-freestanding-musl
|
|
||||||
wasm32-wasi-musl
|
|
||||||
x86_64-linux-gnu
|
|
||||||
x86_64-linux-gnux32
|
|
||||||
x86_64-linux-musl{#end_shell_samp#}
|
|
||||||
<p>
|
<p>
|
||||||
The Zig Standard Library ({#syntax#}@import("std"){#endsyntax#}) has architecture, environment, and operating system
|
Zig is a general-purpose programming language which means that it is designed to
|
||||||
abstractions, and thus takes additional work to support more platforms.
|
generate optimal code for a large set of targets. The command <code>zig targets</code>
|
||||||
Not all standard library code requires operating system abstractions, however,
|
provides information about all of the targets the compiler is aware of.</p>
|
||||||
so things such as generic data structures work on all above platforms.
|
<p>When no target option is provided to the compiler, the default choice
|
||||||
|
is to target the <strong>host computer</strong>, meaning that the
|
||||||
|
resulting executable will be <em>unsuitable for copying to a different
|
||||||
|
computer</em>. In order to copy an executable to another computer, the compiler
|
||||||
|
needs to know about the target requirements via the <code>-target</code> option.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The Zig Standard Library ({#syntax#}@import("std"){#endsyntax#}) has
|
||||||
|
cross-platform abstractions, making the same source code viable on many targets.
|
||||||
|
Some code is more portable than other code. In general, Zig code is extremely
|
||||||
|
portable compared to other programming languages.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Each platform requires its own implementations to make Zig's
|
||||||
|
cross-platform abstractions work. These implementations are at various
|
||||||
|
degrees of completion. Each tagged release of the compiler comes with
|
||||||
|
release notes that provide the full support table for each target.
|
||||||
</p>
|
</p>
|
||||||
<p>The current list of targets supported by the Zig Standard Library is:</p>
|
|
||||||
<ul>
|
|
||||||
<li>Linux x86_64</li>
|
|
||||||
<li>Windows x86_64</li>
|
|
||||||
<li>macOS x86_64</li>
|
|
||||||
</ul>
|
|
||||||
{#header_close#}
|
{#header_close#}
|
||||||
{#header_open|Style Guide#}
|
{#header_open|Style Guide#}
|
||||||
<p>
|
<p>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue