我正在尝试使用thread.h
编译一些C11代码,但无法成功。 我已重新编译了GCC(现在运行的是4.6.2版本),并尝试使用gcc -std=c1x file.c -o file
进行编译。 在g ++中,我可以做到这一点(使用thread
库),但在C中无法实现。 thread.h
是否还没有包含在GCC发行版中?
我正在尝试使用thread.h
编译一些C11代码,但无法成功。 我已重新编译了GCC(现在运行的是4.6.2版本),并尝试使用gcc -std=c1x file.c -o file
进行编译。 在g ++中,我可以做到这一点(使用thread
库),但在C中无法实现。 thread.h
是否还没有包含在GCC发行版中?
<threads.h>
,而不是<thread.h>
。参见N1570草案的第7.26节。<threads.h>
)和实现库的实际代码。<threads.h>
的glibc 2.28。另外,正如user2548688的回答指出的那样,musl C库支持<threads.h>
。在Ubuntu上,您可以安装musl-dev
包并使用musl-gcc
命令。请注意,库中的一些部分,尤其是与编译器密切相关的部分,由gcc本身提供。线程库 可能不是其中之一,但肯定需要一些编译器支持。
在此处可以找到有关此信息的更多信息。
...(原子-stdatomic.h-是可选的,并且可能需要等待相关语言功能在GCC 4.8中实现。我猜测,threads.h中的可选线程接口和Annex K中的边界检查接口目前不想要glibc,尽管它们可能进入单独的库。
我的猜测是,在相当长的时间内我们不会看到这个实现,至少不会在标准glibc和gcc中(源帖提供了一些见解)。我个人的猜测是,需要大约一年的时间,直到它足够稳定,可以用于生产。那就是2k14(断言(survival_2012)):P
musl libc支持C11标准,详情请访问http://www.musl-libc.org/。而glibc目前还不支持threads.h。