我試圖得到當前線程的成員:'產率' 不是 '的std :: this_thread'
的std :: this_thread ::收率();
但不幸的是GCC知道得更清楚:
'產量' 不是 '的std :: this_thread' 成員
沒有忘記對一些破解類似D_GLIBCXX_USE_NANOSLEEP,或者什麼?
我試圖得到當前線程的成員:'產率' 不是 '的std :: this_thread'
的std :: this_thread ::收率();
但不幸的是GCC知道得更清楚:
'產量' 不是 '的std :: this_thread' 成員
沒有忘記對一些破解類似D_GLIBCXX_USE_NANOSLEEP,或者什麼?
是的,這似乎是一個類似於_GLIBCXX_USE_NANOSLEEP
的問題。 GCC根據宏_GLIBCXX_USE_SCHED_YIELD
有條件編譯yield
。如果你定義了它,它應該編譯。
這將固定爲GCC 4.8。
您不應在代碼中定義_GLIBCXX_USE_NANOSLEEP
或_GLIBCXX_USE_SCHED_YIELD
。它們是GCC/libstdC++ - 內部宏,所以應該定義它。如果它們沒有定義,那是因爲GCC沒有配置檢查功能可用性的選項。由於無論您使用哪種系統,啓用該選項顯然沒有缺點,您可以詢問提供GCC的用戶是否願意這樣做。在完成之前,比在代碼中啓用宏更安全的方法是修改系統中的c++config.h
文件以定義宏。
配置gcc啓用sched_yield檢測時,可能需要使用'--enable-libstdcxx-time'。出於某種原因,有一個單一的檢查多個功能
你可以添加一個你認爲應該工作的最小程序? – Mankarse 2012-02-04 10:09:30