下面的代碼C11 GCC threads.h not found?
#include <threads.h>
給了我這個錯誤:
fatal error: threads.h: No such file or directory
使用最新的GCC和鏘與-std = C11。
C11線程不支持GCC和Clang?還是有一個黑客(或安裝)來得到它?我只是使用Ubuntu 14.04與Ubuntu repo中的gcc和clang包。
下面的代碼C11 GCC threads.h not found?
#include <threads.h>
給了我這個錯誤:
fatal error: threads.h: No such file or directory
使用最新的GCC和鏘與-std = C11。
C11線程不支持GCC和Clang?還是有一個黑客(或安裝)來得到它?我只是使用Ubuntu 14.04與Ubuntu repo中的gcc和clang包。
的gcc
文件C11 status表明,它不支持線程,它說:
Threading [Optional] | Library issue (not implemented)
由於這份文件表明,這是不是一個真正的gcc
或clang
問題,而是glibc
問題。正如Zack指出,它看起來像there may be work under way soon爲glibc
得到支持,但現在不會幫助你。 在此期間您可以使用this。
謝謝。那麼GCC和Clang都不支持C11線程呢?我將不得不退回到POSIX線程,然後:-( – lucasart
@lucasart看起來是這種情況 –
我希望我昨天已經讀過這個[用於''glibc'線程的Bugzilla](https://sourceware.org/bugzilla /show_bug.cgi?id=14092)仍然開放(2年以上)。@lucasart:POSIX線程似乎不是迴歸;幾乎相同的界面,「便攜」,*和*實施。 :)事實上,編譯針對['glibc' 2.19](http://www.gnu.org/software/libc/libc.html)報告'__STDC_NO_THREADS__'是'1'。另請參閱[this SO](http://stackoverflow.com/questions/8859394/c11-thread-h-in-gcc)瞭解更多鏈接。 pthreads它是(或C++ 11的'std ::線程,這順便說一句取決於'-pthread' ...)。 –
雖然C11線程尚未實現,但C++ 11線程已經實現並且它們具有相似的功能。當然,C++ 11可能是一個不可接受的解決方案,在這種情況下,關於POSIX線程的先前評論是您最大的希望。
在Ubuntu中,鏈接頭文件* c11threads.h *會導致一堆錯誤,例如'PTHREAD_MUTEX_TIMED_NP'未聲明。搜索說它應該在包含的'pthreads.h'中,但似乎不是。 –
@Hi -Angel您需要使用-std = gnu11編譯器標誌而不是-std = c11,或者在包含該c11threads.h文件之前需要使用#define _GNU_SOURCE。 – nos
完全支持c11和/或threads.h的編譯器數量是負數。 :( – this
C11線程最終受到支持時,將由C *庫*支持,而不是編譯器本身。至少有兩個人在談論如何在今年夏天將glibc作爲GSoC項目實現C11線程,同時,你可能會發現'pthread.h' API可疑地類似,儘管它的名字更長。 – zwol
在RHEL中,沒有'threads.h'但是有'pthread.h'。在solaris中有'thread.h '。 – alvits