blob: 25d8363743c497980a20d2cbec00150bbe92b093 [file] [log] [blame] [view]
# Compiling C/C++ code
The present document compiles a list of guidelines, recommendations, and
expectations around the topic of compiling C and C++ code against the Core SDK.
## Sysroot
The Fuchsia sysroot for a given target architecture is available under
`//arch/<architecture>/sysroot`.
That directory contains a complete sysroot and may be used with any tool that
accepts a `--sysroot` flag.
## Prebuilts
All prebuilts have C linkage.
### Debug symbols
Debug symbols for all prebuilts are available under `//.build-id`, which follows
a [standard convention][build-id].
## Compilation parameters
- C++ sources must be compatible with C++17.
### Warning flags
The following flags are guaranteed to not generate any warning:
- `-Wall`
- `-Wctad-maybe-unsupported`
- `-Wextra-semi`
- `-Wnewline-eof`
- `-Wnon-virtual-dtor`
- `-Wshadow`
The following flags may generate warnings:
- `-Wdeprecated-declarations`
[build-id]: https://fedoraproject.org/wiki/Releases/FeatureBuildId#Find_files_by_build_ID