Clang错误 - 找不到stddef文件?

haz*_*ziz 11 c linux ubuntu stdio clang

升级到Ubuntu 13.10"Saucy"后,Clang现在给我错误信息:

clang -Wall -Werror -std=c99 -ggdb -O0 5.1.c -o 5.1
In file included from 5.1.c:1:
/usr/include/stdio.h:33:11: fatal error: 'stddef.h' file not found
# include <stddef.h>
          ^
1 error generated.
make: *** [5.1] Error 1
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我所包含的标题stdio.h不是,stddef.h但我假设stdio.h参考或#includes stddef.h

Moh*_*zim 7

尝试在clang-tidyclang安装的情况下运行时为我出现此错误。

安装clang修复了此错误。IMO clang-tidy在GCC中查找标头时,会发生此错误,并且clang缺少这些标头的系统路径和版本/符号链接。


Gla*_*net 6

这是ubuntu中的一个已知错误.看看这里:https://bugs.launchpad.net/ubuntu/+source/llvm-defaults/+bug/1242300

似乎临时解决方法是更正符号链接:

对于3.5 LLVM工具链,似乎symlink /usr/lib/clang/3.5/include错误地指向../../llvm-3.4/lib/clang/3.5/include,但应该指向../. ./llvm-3.5/lib/clang/3.5/include

解决方法(当然)是手动更正符号链接.

对于3.4工具链,/usr/lib/clang/3.4/include根本不存在.我没有在Ubuntu上尝试LLVM 3.4所以我不知道是否创建一个符号链接到../../llvm-3.4/lib/clang/3.4/include将解决问题,但它似乎有可能.

资源

  • 鉴于这个错误已于 2015 年修复,并且问题至少持续到 Ubuntu 18.04,这可能还不是全部! (2认同)