gcc 编译器找不到包含文件 stdio.h

gcc 编译器找不到包含文件 stdio.h

编译gcc器找不到包含文件stdio.h

$ batcat test.c
───────┬──────────────────────────────────────────────────────────
       │ File: test.c
───────┼──────────────────────────────────────────────────────────
   1   │ #include <stdio.h>
   2   │ int main(void){
   3   │     printf("hello world");
   4   │     return 0;
   5   │ }

$ gcc test.c
In file included from test.c:1:
/usr/local/include/stdio.h:6:10: fatal error: sys/stdio.h: No such file or directory
    6 | #include <sys/stdio.h>
      |          ^~~~~~~~~~~~~
compilation terminated.

正如您在下面看到的,该stdio.h文件存在于/usr/local/include目录中。

/usr/local/include  via  v11.3.0-gcc
$ ls
assert.h  float.h     locale.h  stdarg.h   stdio.h   wchar.h
bits      inttypes.h  math.h    stdbool.h  stdlib.h  wctype.h
ctype.h   iso646.h    setjmp.h  stddef.h   string.h
errno.h   limits.h    signal.h  stdint.h   time.h

我也尝试过重新安装gcc、、libc6libc6-dev

答案1

引发此问题的原因是从源代码安装了名为 scc 的替代编译器。这似乎与 的运行时路径存在冲突gcc

我从评论中的讨论中得出的最初印象是,包含文件gcc不应该在/usr/local/include目录中,而应该在文档确实说gcc检查此目录中的包含文件。所以我不确定问题是什么。

我完全删除了这个文件夹并解决了我的问题:

rm -rf /usr/local/include/

答案已从此处移至楼主的问题

相关内容