SQLite Forum

Which C standard does Sqlite's source code compatible?
Login
For completeness's sake: the sqlite3 amalgamation compiles fine with gcc using `-std=c89 -Wall -Werror -Wextra -Wpedantic`, so long as a couple other flags are passed along with it:

- `-Wno-long-long` because C89/C90 doesn't specify long long.
- `-Wno-implicit-fallthrough` because gcc's devs broke a great many real-world builds when they "deprecated" implicit switch fall-through. *Grrrrrrr.*

e.g.:

```
gcc -g -Wpedantic -Werror -Wall -Wextra \
  -Wsign-compare -fPIC -std=c89 -Wno-long-long \
  -Wno-implicit-fallthrough \
  -c -o sqlite3.o sqlite3.c
```

Edit: depending on the build options and gcc version, it may also need:

- `-Wno-cast-function-type` because sqlite apparently casts between (`void (*)(void)`) and (`int (*)(void)`)
- `-Wno-unused-parameter` for interface-level parameters which may not be used by certain concrete implementations of the interface.