GCC在Alpine Linux中找不到stdio.h

Fra*_* Yu 26 gcc alpine-linux

在一个新的Alpine Linux中我安装了GCC

apk add --update-cache gcc
Run Code Online (Sandbox Code Playgroud)

但仍然是一个简单的程序

#include <stdio.h>

int main(int argc, char *argv[]) {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

用消息编译

fatal error: stdio.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

Fra*_* Yu 54

libc-dev除了GCC之外还要安装,或者只build-base为所有东西安装(alpine-sdk可能是一种过度杀伤).要安装,请运行以下命令:

apk add libc-dev
Run Code Online (Sandbox Code Playgroud)

您需要单独安装它,因为在Alpine Linux中,GCC包不依赖于libc-dev 以下原因:

您可以使用gcc编译没有libc的东西,例如虚拟机管理程序固件等.

而August Klein也指出,在Debian中,GCC只推荐 libc-dev出于同样的原因(但大多数人都不这么做--no-install-recommends).

  • `apk add libc-dev` (6认同)
  • 或者,``apk add musl-dev`:`libc-dev`是一个元包,它将拉出'musl-dev`,其中包含实际文件(https://pkgs.alpinelinux.org/contents?file=&path= &名称= MUSL-dev的&分支= V3.8&回购=主&拱= x86_64的) (6认同)
  • 同样,对我来说,缺少 `stdlib.h` 并修复了它。 (3认同)