我想编译一些C11代码,使用thread.h
,但我不能。我已经重新编译了GCC(现在运行4.6.2),并且正在尝试编译gcc -std=c1x file.c -o file
。我可以在g ++中执行此操作(使用thread
库),但我不能在C中。是否还包含thread.h
未包含在GCC发行版中?C11 <thread.h>在GCC?
26
A
回答
36
穿线标准C11头是<threads.h>
,不<thread.h>
。请参阅N1570 draft的第7.26节。
大多数C标准库(包括stdio)都不包含在gcc发行版中。相反,gcc依赖于操作系统提供的任何运行时库。这通常包括标题(如<threads.h>
)和实现该库的实际代码。
对于大多数Linux系统(或GNU/Linux,如果您愿意的话),该库是GNU的glibc;对于其他系统,它将是别的东西。
所以真正的问题可能是,当你使用的glibc,或任何C库,将支持C11的线程功能。
(注:库的几个部分,那些最密切相关的编译器,是由GCC本身提供。线程库可能是不是其中之一,但肯定需要一定的编译器支持)
6
9
关于此的更多信息可以在here找到。
... (原子能 - stdatomic.h - 是可选的,可能需要等待 关联的语言功能在GCC 4.8中实现我猜 在线程的线程可选接口h和边界检查在附件K 接口不是通缉的glibc就目前而言,虽然可以 可能在不同的图书馆去。
我的猜测是,我们将不会看到此实施了相当长的一段时间,至少不是在标准的glibc和gcc(源文章提供了一些见解)个人猜测大概是一年,但它可能需要2年左右的时间,直到它足够稳定以供生产使用。那2k14(断言(survival_2012)):P
2
MUSL的libc具有C11 http://www.musl-libc.org/ glibc不threads.h支持尚未
相关问题
- 1. C11 GCC threads.h not found?
- 2. 列出并查看gcc C11头文件
- 3. 在C11
- 4. 未定义符号“在toupper” GCC 4.7 OS-X小牛10.9 C11
- 5. 为什么GCC可以在C11 atomic_load中消除内存障碍?
- 6. 如何在使用GCC编译C++时包含C11头文件?
- 7. 如何在更高版本的gcc上启用c11?
- 8. gcc的警告当方言C99或C11使用
- 9. 如何获得GCC Raspbian上的C11头文件?
- 10. C11 Unicode支持
- 11. 克++在C11编译器宏
- 12. C11结构继承与匿名结构
- 13. C11线程编程
- 14. _Alignas使用铛&C11
- 15. P99和C99 vs C11
- 16. 通过typedefs C11匿名结构?
- 17. GCC在Windows Linux的庆典
- 18. const QList <int> warnings = QList <int>()<< 0;用gcc 4.7.2
- 19. 在GCC实现位字段
- 20. 以运算符的地址<<在gcc中失败4.8
- 21. C11的最新变化
- 22. C11/C++ 11内存模型
- 23. 支持c11中的BitSet
- 24. Windows上的C11线程
- 25. 在C11中获得什么()相当于?
- 26. 在MSVC 2017下丢失C11 strerrorlen_s功能
- 27. 使用在C11的_Generic宏无法
- 28. 放置在C11(编码风格)
- 29. c11 _通用添加类型
- 30. 编译器支持C11
大多数Linux系统使用glibc,有些(如现代的Debian及其衍生产品)使用EGLIBC。其他一些系统使用其他替代品。 – 2013-04-03 12:59:47