我只是試着用g++ 4.6
和C++11
功能。 每次我使用-std=c++0x
標誌編譯一個簡單的線程代碼時,它會崩潰並出現分段錯誤,或者它只會引發一些奇怪的異常。g ++是在後臺使用pthreads的C++ 11線程模型嗎?
我看了一些與C++11
線程有關的問題,我意識到我也需要用-pthread
標誌來正確編譯代碼。使用-pthread
工作正常,我能夠運行線程代碼。
我的問題是,C++11
多線程模型在後臺是否使用Pthreads
? 或者是從頭開始寫的?
我不知道是否有任何成員是gcc
貢獻者,但我只是好奇。
@Kay看起來問題是關於g ++ 4.6。 – juanchopanza 2012-08-02 19:17:54
「某些奇怪的異常」可能是'std :: system_error',當線程無法創建時(例如,因爲您沒有用'-pthread'鏈接到libpthread.so),標準需要這個異常。我正在努力改進異常提供的信息,請參閱http://gcc.gnu.org/PR52681 – 2012-08-02 23:32:30
@JonathanWakely ....是的,這是我在Linux機器上處理的異常......與AMD Turion X2 ....雖然它在我的室友英特爾機器上沒有'-pthread'標誌的情況下順利進行...... – Recker 2012-08-02 23:56:33