--EDIT 如果你想使用 MinGW GCC 8.4.1 和 threads/mutex/futures/atomics 不要下载 Win32 threader 版本 insted 下载 Posix 版本。 - 编辑
我的MinGW安装如下:x32-4.8.1-release-win32(作为线程)-sjlj rev 5
我已解压并正确确认MinGW GCC 4.8.1(修订版 5)安装在 C:\MinGW\mingw32 中。 我已经设置了代码块以在正确的路径中寻找最新最好的编译器(我确信这一点)。我可以使用#include iostream编译一个普通程序。 好的,现在当我尝试使用#include thread运行程序时,它给了我“错误:'thread'不是'std'的成员”。
现在这是我所做的和我尝试过的:
我在cplusplus.com上关注一种模板或教程 。
我的代码与网页上显示的代码完全相同(朝向底部)。
我在代码块中尝试使用编译器标志“让 g++ 遵循 C++11 ISO 语言标准 -std=c++11”。
我还尝试了标志“让 g++ 遵循即将到来的 C++0x ISO 语言标准 -std=c++0x”
我同时尝试过,一次一个,没有。我也手动尝试了这些命令。
我手动尝试的另一个命令是线程头中推荐的 -std=gnu++11 。
--EDIT 似乎__cplusplus是 < 201103L ,它在线程头中声明(或更确切地说是定义)。这只发生在我手动使用 -std=c++11 时,出于某种原因,如果手动声明它,C::B 会删除它,所以我必须使用复选框来使用这个标志 ...--编辑
我在Toolchain Executables 选项卡下的编译器设置如下:
C编译器:i686-w64-mingw32-gcc-4.8.1.exe
C++编译器:i686-w64-mingw32-c++.exe
动态链接器:i686-w64-mingw32-c++.exe
静态链接器:ar.exe
调试器:GDB/CDB 调试器:默认
资源编译器:windres.exe
制作程序:mingw32-make.exe
我已经尝试在 bin 文件夹中使用其他可执行文件,但仍然没有运气......我开始怀疑 GCC 是否支持 C++11 或线程!?
有没有人能够让线程与 MinGW GCC、代码块或一般情况下一起工作?如果是这样,你是怎么做到的?任何可能有帮助的链接?有什么建议吗?
PS我知道还有其他线程方式,如posix或其他SDK,如SFML(我已成功尝试使用此线程)。但是我想使用 GCC 线程,我很困惑为什么看到所有必要的文件都这么难......
--编辑 我发现,当我在代码块之外手动编译程序时,我仍然会遇到相同的错误,无论我使用 g++ c++ 还是 i686-w64-mingw32-g++/c++
这是我运行来构建文件的命令:
C:\MinGW\mingw32\bin>g++.exe -D__GXX_EXPERIMENTAL_CXX0X__ -o0 -g3 -Wall -c -fmes sage-length=0 -std=c++11 -Wc++11-compat -o obj\Debug\main .o "F:\C 项目\代码块\thread\main.cpp"
仍然返回错误:“线程”不是“标准”的成员
这可能是一个糟糕的构建吗?我会尝试其他版本 ...--编辑