【问题标题】:Clang Error - stddef file not found?Clang 错误 - 找不到 stddef 文件?
【发布时间】:2014-01-02 10:41:11
【问题描述】:

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

【问题讨论】:

    标签: c linux ubuntu clang stdio


    【解决方案1】:

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

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

    【讨论】:

    • 我在运行clang-tidy 时也遇到了这个错误。感谢您的解决方案。
    • 同样的问题,但是在 Ubuntu 20 上使用 qtcreator 时。我安装了多个 clang 版本:(
    【解决方案2】:

    这是 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/clang/3.5/include

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

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

    Source

    【讨论】:

    • 鉴于此错误已在 2015 年修复,并且该问题至少在 Ubuntu 18.04 之前仍然存在,这可能不是全部!
    猜你喜欢
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 2014-12-14
    • 2021-10-22
    • 2019-06-28
    相关资源
    最近更新 更多