我正在使用Code :: Blocks 13.12和TDM-GCC(版本4.7.1,32位)。当我尝试使用线程类时,我收到以下错误:
'thread' is not a member of 'std'
我确信#include <thread>
。我启用了编译器标志-std=c++11
来告诉编译器符合C ++ 11标准。
我想也许我的GCC版本不够新,所以我安装了TDM-GCC 4.8.1;当我使用它的编译器时,我没有这个问题。但是,我读到GCC版本低至4.4支持C ++ 11线程类,这意味着我的原始版本GCC(4.7.1)已经足够了。出了什么问题?
答案 0 :(得分:2)
MinGW(包含在TDM-GCC中)附带两个线程API之一:winpthreads(基于POSIX线程API,pthreads)或Win32线程API。如果您的版本具有Win32线程API,则std :: thread为disabled。 TDM-GCC 4.7.1使用Win32线程API,而TDM-GCC 4.8.1和更高版本使用winpthreads。这就是为什么编译器在一个案例中成功而在另一个案例中没有成功的原因。
这为'thread' is not a member of 'std'
问题提供了两种可能的解决方案: