我想編譯一些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