24

After upgrading to Ubuntu 13.10 "Saucy", Clang now gives me the error message:

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

BTW the header I included was stdio.h not stddef.h but I am assuming that stdio.h references or #includes stddef.h

haziz
  • 12,117
  • 15
  • 50
  • 74

2 Answers2

19

This error appeared for me when trying to run clang-tidy without clang installed.

Installing clang fixed this error. IMO this error occurs when clang-tidy looks for headers in GCC and system paths and clang version/symlink of these headers are missing.

Mohammad Azim
  • 2,309
  • 19
  • 21
9

It's a know bug in ubuntu. Take a look here: https://bugs.launchpad.net/ubuntu/+source/llvm-defaults/+bug/1242300

It appears that a temporary workaround is to correct the symlink:

For the 3.5 LLVM toolchain it seems that the symlink /usr/lib/clang/3.5/include erroneously points to ../../llvm-3.4/lib/clang/3.5/include, but should instead point to ../../llvm-3.5/lib/clang/3.5/include

The workaround (of course) is to manually correct the symlink.

For the 3.4 toolchain the /usr/lib/clang/3.4/include doesn't exist at all. I have not tried LLVM 3.4 on Ubuntu so I don't know if createing a symlink to ../../llvm-3.4/lib/clang/3.4/include will fix the problem, but it does seem likely.

Source

Glabsounet
  • 537
  • 5
  • 11
  • Given that this bug was fixed in 2015 and the problem persists at least until Ubuntu 18.04, it's probably not the entire story! – John McFarlane Sep 24 '21 at 11:03