GCC can't find stdio.h in Alpine Linux

Franklin Yu picture Franklin Yu · Feb 21, 2017 · Viewed 19.4k times · Source

In a fresh Alpine Linux I installed GCC by

apk add --update-cache gcc

but still a simple program

#include <stdio.h>

int main(int argc, char *argv[]) {
    return 0;
}

compiled with message

fatal error: stdio.h: No such file or directory

Answer

Franklin Yu picture Franklin Yu · Feb 21, 2017

Install musl-dev (in addition to the gcc compiler)

apk add musl-dev

You need to install it separately because in Alpine Linux, the package GCC doesn't depend on libc-dev for good reason:

You can use gcc to compile things without libc, for example hypervisors firmware etc.

And August Klein also noted that in Debian, GCC only recommends libc-dev for the same reason (but most people don't do --no-install-recommends anyway).