Clang错误 - 找不到stddef文件?

时间:2013-12-14 19:21:27

标签: c linux ubuntu clang stdio

升级到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

顺便说一句,我所包含的标题是stdio.h而非stddef.h,但我假设stdio.h引用或#includes stddef.h

2 个答案:

答案 0 :(得分:6)

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

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

  

对于3.5 LLVM工具链,它似乎是符号链接   /usr/lib/clang/3.5/include错误地指向   ../../llvm-3.4/lib/clang/3.5/include,但应该指向   ../../ LLVM-3.5 / LIB /铛/ 3.5 /包括

     

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

     

对于3.4工具链,/ usr / lib / clang / 3d / include不存在于   所有。我没有在Ubuntu上尝试LLVM 3.4,所以我不知道是否创建   符号链接到../../llvm-3.4/lib/clang/3.4/include将修复   问题,但似乎有可能。

Source

答案 1 :(得分:4)

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

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