找不到C11 GCC threads.h?

luc*_*art 23 c multithreading c11

以下代码

#include <threads.h>
Run Code Online (Sandbox Code Playgroud)

给我这个错误:

fatal error: threads.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

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

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

Sha*_*our 21

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

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

由于这份文件表明,这是不是一个真正的gccclang问题,而是glibc问题.正如扎克所指出的那样,看起来很快就会有工作来获得对此的支持,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_*functions
918311a nptl:添加C11线程cnd_*functions
3c20a67 nptl:添加C11线程call_once函数
18d59c1 nptl:添加C11线程mtx_*函数
ce7528f nptl:添加C11线程thrd_*函数

它将包含在2.28中.

  • 怎么不能实现呢?:( (9认同)
  • [修订于2.28](https://sourceware.org/bugzilla/show_bug.cgi?id=14092) (4认同)

小智 5

Musl支持 C11<threads.h>

在 Debian 中安装musl-tools,然后用musl-gcc. 我正在使用 Musl 而不是 Glibc 来引导 Debian。

也看到这个