您的位置:首页 > 编程语言 > C语言/C++

Windows下CodeBlocks配置 支持C++11 多线程 std::thread

2016-06-24 15:22 393 查看

失败的几种姿势

之前看了几篇文章

/article/10560363.html

这篇博客是让在SourceForge上下载32位或64位的MinGW-builds v4.8.0:下载链接分别是:

(1)http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/32-bit/threads-win32/sjlj/

(2)http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/64-bit/threads-win32/sjlj/

(多个rev压缩包,下载最新的那个就好。)

下载之后按照它的介绍配置,运行一个测试程序:

#include <iostream>
#include <thread>
using namespace std;

void hello()
{
cout<<"hello kitty"<<endl;
}

int main()
{
std::thread t(hello);
t.join();
return 0;
}


会出现编译错误,显示thread未在当前域中声明,也就是这个版本的编译器不支持了。

后来我看了这一篇:

/article/1589681.html

这篇博客介绍,需要下载POSIX架构的MinGW-builds v4.8.0,下载链接是:

https://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/64-bit/threads-posix/sjlj/

下载、解压、配置、重启codeblocks,这个流程又重复一遍,编译依然出错,出现很多错误,基本上都是未定义的引用“xxxx”函数,所以windows不能用这个版本。

我试了MinGW-builds/ host-windows / releases / 4.8.1下的三个版本:

(1)https://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/64-bit/threads-win32/sjlj/

(2)https://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/64-bit/threads-posix/sjlj/

(3)https://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/32-bit/threads-win32/sjlj/

都不好使。

为什么? =。=

上面的博文都是2013、2014年左右的。

在stackoverflow上看了相关问题也都是两年前的提问。

所以可能过去的方法已经不适用了。

最终解决:请下载codeblocks-16.01mingw

下载最新版本的带gcc编译器的CodeBlocks就成功了!!

配置自带的编译器就可以。

CodeBlocks自带的都是TDM-GCC,没用过,但是已经支持std::thread了。

环境说明:

测试时间:2016年6月24日

操作系统:Windows 7 64bits OS

CodeBlocks版本:16.01

安装包:codeblocks-16.01mingw-setup.exe

下载链接:http://www.codeblocks.org/downloads/26

CodeBlocks配置:

Settings -》 Compiler

设置编译器位置:(注意每次更换编译器安装路径后,下面的程序文件路径都要重新选择一遍,默认还是在上一次配置的编译器的子目录,为确保准确,请从根目录重新选择。)



勾选c++支持:



对上面的程序进行测试:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: