找不到C11 GCC threads.h?

以下代码

#include  

给我这个错误:

 fatal error: threads.h: No such file or directory 

使用最新的GCC和Clang -std = c11。

GCC和Clang不支持C11线程吗? 或者是否有一个黑客(或安装的东西)来获得它? 我只是使用Ubuntu 14.04和Ubuntu repo中的gcc和clang包。

gcc文档C11状态表明它不支持线程,它说:

线程[可选] | 图书馆问题(未实施)

正如文件所指出的那样,这不是gccclang问题,而是glibc问题。 正如Zack所指出的那样, 很快就会有工作正在进行中,以获得对glibc支持,但现在这对你没有帮助。 你可以在此期间使用它 。

固定为glibc 2.28

根据Bug 14092 – 支持C11线程,这将在glibc 2.8中修复:

上游实施:

9d0a979为threads.h添加手册文档
0a07288 nptl:添加ISO C11线程的测试用例
c6dd669 nptl:为C11线程添加abilist符号
78d4013 nptl:添加C11线程tss_ *函数
918311a nptl:添加C11线程cnd_ *函数
3c20a67 nptl:添加C11线程call_once函数
18d59c1 nptl:添加C11线程mtx_ *函数
ce7528f nptl:添加C11线程thrd_ *函数

它将包含在2.28中。

Musl支持C11

在Debian中安装musl-tools ,然后用musl-gcc 。 我正在与Musl而不是Glibc一起开始使用Debian。

也看到这个 。

虽然C11线程尚未实现,但C ++ 11线程已经实现,它们具有类似的function。 当然,C ++ 11可能是一个不可接受的解决方案,在这种情况下,关于POSIX线程的先前评论是您最好的希望。