找不到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状态表明它不支持线程,它说:
线程[可选] | 图书馆问题(未实施)
正如文件所指出的那样,这不是gcc
或clang
问题,而是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线程的先前评论是您最好的希望。