#include <thread>
int main(void)
{
std::thread t;
return 0;
}
test.cpp: In function ‘int main()’:
test.cpp:6:5: error: ‘thread’ is not a member of ‘std’
std::thread t;
^~~
GCC信息:
$ g++ test.cpp -H
. /home/nathan/development/toolchain/gnu/x86_64-unknown-linux-gnu/include/c++/6.2.0/thread
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/nathan/development/toolchain/gnu/x86_64-unknown-linux-gnu/libexec/gcc/x86_64-pc-linux-gnu/6.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc/configure --prefix=/home/nathan/development/toolchain/gnu/x86_64-unknown-linux-gnu --enable-languages=c,c++,fortran --disable-multilib --enable-threads=posix --enable-libstdcxx-threads
Thread model: posix
gcc version 6.2.0 (GCC)
使用STL其他地方工作的就好了,它只是thread
失败了。我在 错过了什么?配置后,GCC将选择线程模型。
编辑1
重新编译GCC与--enable-threads
。仍然产生相同的错误。
编辑2
重新编译GCC与--enable-libstdcxx-threads
。仍然产生相同的错误。
编辑3
重新编译GCC与--enable-threads=posix
。仍然产生相同的错误。
编辑4
要拍清楚,我是用分支gcc-6_2_0-release
回购建设。
你可能已经建立了GCC,不必穿线C++支持。试试'g ++。exe -dM -E -x C++ -std = C++ 11 test.cpp | egrep'_GLIBCXX_HAS_GTHREADS | _GLIBCXX_USE_C99_STDINT_TR1'。如果你没有看到两个定义,你的构建没有线程支持。不知道是否仍需要'--enable-threads'。 –
我只看到'的#define _GLIBCXX_USE_C99_STDINT_TR1 1'。猜猜我用'--enable-threads'重建。为什么这不是2016年的默认设置? – nathansizemore
@ n.m。我刚刚用'--enable-threads'完成构建,并且仍然出现相同的错误。我错过了别的吗? – nathansizemore