C++ 多线程不能通过编译问题('thread' is not a member of 'std') 10C
 #include <iostream>
#include <thread>
using namespace std;

void thread_task()
{
    std::cout << "hello thread" << std::endl;
}

int main(int argc, const char *argv[])
{
    std::thread t(thread_task);
    t.join();
    return EXIT_SUCCESS;
}

错误信息:
'thread' is not a member of 'std'|

环境如下:
windows 7 64 bit;

gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/i686-pc-mingw32/6.1.0/lto-wrapper.exe
Target: i686-pc-mingw32
Configured with: ../configure --prefix=/mingw/opt/gcc --with-local-prefix=/mingw/opt/gcc --with-native-system-header-dir=/mingw/opt/gcc/i686-pc-mingw32/include --with-gxx-include-dir=/mingw/opt/gcc/i686-pc-mingw32/include/c++/6.1.0 --target=i686-pc-mingw32 --enable-languages=c,c++,fortran,java,objc,obj-c++ --enable-static --enable-shared --enable-libgomp --enable-lto --enable-threads=posix --enable-libstdcxx --enable-libstdcxx-debug --enable-graphite --enable-tls --enable-nls --disable-bootstrap --disable-stage1-checking --disable-multilib --disable-libvtv --disable-sjlj-exceptions --disable-libstdcxx-pch --disable-win32-registry --with-dwarf2 --with-gmp=/mingw/opt/gcc --with-mpfr=/mingw/opt/gcc --with-mpc=/mingw/opt/gcc --with-isl=/mingw/opt/gcc
Thread model: posix
gcc version 6.1.0 (GCC)

IDE:codeBlocks 16.10

图片说明

1

6个回答

std是标准命名空间
不清楚using namespace std么
还有使用线程需要调用库 -lpthread

1

这是C++11的特性, linux下gcc版本最好在4.8.1以上, 编译时记得带上-std=c++11。windows下VS版本最少要VS2012, vs越新越好.

1

gcc版本低了。最好到linux平台用最新的gcx6是可以的

0
yokeyoke
yokeyoke 已经是GCC6.1了
2 年多之前 回复

C++11才支持的,大多数C++编译器都不支持。。
这么新的东东其实没什么实用价值

0

C++11对多线程操作进行了整合封装

0

升级下你的gcc版本,我用vs13过了

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
#gcc4.7.2编译以支持c++11标准,解决not a member问题
参考http://blog.csdn.net/cssmhyl/article/details/8114386编译4.7.2,对原作者表示感谢。 使用g++4.7.2熟悉c++11,遇到下面问题。。 'thread' isnotamemberof 'std 'yield' is not a member of 'std::this_thread' sleep_for’ is not a
c++11 thread --多线程编译报错问题解决办法
//test.cpp #include #include #include #include std::mutex mMutex; using namespace std; static int count=0; static int MAX=5000; static int line=0; static int line_count=5; void thread1(){
gcc g++ 支持 c++0x的办法 实现多线程
在gcc后面加上parameter -std=c++0x就可以了 gcc -std=c++0x g++ -std=c++0x
C++11 thread调用对象的成员函数
参考https://segmentfault.com/q/1010000009379779/a-1020000009380112 std::thread 调用类的成员函数需要传递类的一个对象作为参数: #include &amp;amp;lt;thread&amp;amp;gt; #include &amp;amp;lt;iostream&amp;amp;gt; class bar { public: void foo() { std::...
实战c++中的智能指针unique_ptr系列-- std::unique_ptr的构造(尽量使用C++14中的std::make_unique,而不是new)
上篇博客算是unique_ptr的一个开篇,就是简单说说为何要使用unique_ptr,与传统指针相比,智能指针的优势而已。现在就从构造开始说起!看看这些构造方法:default (1) constexpr unique_ptr() noexcept;from null pointer (2) constexpr unique_ptr (nullptr_t) noexcept : uniqu
C++ 菜鸟之路 (四) boost::thread 多线程全解析
boost::thread 的一般用法 boost::thread的几个函数 lock() 函数 boost::thread 的一般用法 /* thread.cpp */ #include &amp;amp;amp;amp;amp;lt;boost/thread/thread.hpp&amp;amp;amp;amp;amp;gt; #include &amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;gt; #include &
[C++11]析构函数中std::thread::join()卡住无法退出
join()卡住分析 直接原因: 与main thread退出时候发生死锁。 main结束时候 -->CRT locktable.lock         -->~          -->join等待其他线程退出 其他线程结束时候 ->等待main释放CRT locktable.lock -->与main线程死锁
Windows下CodeBlocks配置 支持C++11 多线程显示thread编译错误的问题解决
搞了一个晚上,直到看到这篇文章才解决,转载一下,原文链接如下:https://blog.csdn.net/huhaijing/article/details/51753085失败的几种姿势之前看了几篇文章 http://blog.csdn.net/guogaoan/article/details/17653295 这篇博客是让在SourceForge上下载32位或64位的MinGW-builds ...
关于在ubuntu下eclipse中c++11支持和编译运行c++11报错的解决方法
最近准备升级项目中的c++线程部分代码用c++11简单重构一下,结果测试demo直接就报错~ 百度和谷歌了一部分还是没有解决这个问题~ 最后经过研究eclipse的自动编译~终于搞定了~
mingw无法编译多线程程序的问题及解决
mingw无法编译多线程程序的问题及解决 在linux环境下,用gedit+gcc方式学习一段时间的c语言,发现自己越来越佩服linux的牛人了。 居然不用IDE也能开发代码。我做不到,所以有回到了windows的怀抱。   mingw是windows版本的gnu c/c++工具集 主要包括编译器gcc,连接器make,调试器gdb Eclipse是很好用的开发Java的IDE,
c++多线程 thread mutex 使用小结
c++多线程 thread mutex 使用小结std::thread std::mutex 基本使用方法std::thread 用于开启一个线程。std::mutex 是互斥锁,防止不同线程间的代码在不同线程间做不安全的切换std::mutex try_lock()子线程作生产者、主线程做消费者子线程做加载、主线程显示百分比多线程里遇到的几个问题: c++对于多线程的支持,依赖于 std::th...
使用C++11进行多线程归并排序:std::thread
相对于使用pthread来说,c++的标准库对多线程的编程封装的非常好,使用起来有如下几个优势:1:1:可以直接传递参数给函数,而不需要将它封装到一个结构体再转换成为void*传入。22:对于目标函数的要求不再是void*的返回类型,这样如果要使用一些内置的函数,就不需要进行单独封装成void*类型。==================================================
vc6.0 运行C++式加入不能用std::调用的问题
VC6.0 之前一直用来写C 今天我用来C++开始的第一个程序就遇到问题 #include int main() {                  std::cont        return 0; } 编译错误提示 C:\Users\my\Desktop\2.cpp(5) : error C2039: 'cont' : is not a member of 'std'
C++线程 -- boost::barrier解决多线程分工问题
#include
一、C++11多线程std::thread的简单使用(上)
出处:http://blog.csdn.net/star530/article/details/24186783 昨天练车时有一MM与我交替着练,聊了几句话就多了起来,我对她说:”看到前面那俩教练没?老色鬼两枚!整天调戏女学员。“她说:”还好啦,这毕竟是他们的乐趣所在,你不觉得教练每天都教学员是很枯燥的一件事么?所以调戏学员是他们每天的乐趣,这样工作才更有动力“。我承认听完她的话我愣住了! 事
C++——多线程编程(二)std::mutex 线程同步、解决资源竞争问题
前言线程同步这里的“同”不是同时、一起执行的意思,而是指协同、协助、互相配合。线程同步是指多个线程协同步调,按预定的先后次序进行运行。线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,同时其它线程也不能调用这个方法。定义:即当有一个线程在对内存进行操作时,其
c++多线程 (生产者消费者问题)
针对多线程中常见的生产者消费者问题,封装了一个类,和测试代码,方便日后直接套用。 具体来说就是多线程使用时候经常遇到的 一个线程取数据,一个处理数据,一个保存或传递数据。
在多线程环境中不要使用string/wstring
    string/wstring是basic_string模板的两个具体的应用,是c++模板库中的精华,我作为一个c++程序员,也特别喜欢这两个类。c++标准要求对于string/wstring的实现,必须支持数据共享。也就是说,对于同一个数据,不同的string/wstring对象必须共享它,如下图所示:+-----------------------------+ ptr|string/w
C++ 11 thread 多线程管理
C++ 11 多线程的管理是基于 std::thread 类的, 该类提供了线程的管理 ,创建, 启动 , 执行等线程基本属性。创建线程:#include &amp;lt;iostream&amp;gt; #include &amp;lt;thread&amp;gt;#include &amp;lt;mutex&amp;gt;#include &amp;lt;condition_variable&amp;gt;using namespace std;void ...
fbcunn在Ubuntu 14.04下安装可能出现的问题以及解决方法
fbcunn在Ubuntu 14.04下安装可能出现的问题以及解决方法 在Ubuntu 14.04环境下,按照官网安装教程安装fbcunn,,可能会出现不少的问题,在这我将分享我所遇到的一些问题以及解决过程,希望能帮到和我一样遇到类似问题的朋友。 一、安装CUDA与Torch 因为我在安装fbcunn时已经使用了一段时间的Torch,按照官网安装教程的步骤安装CUDA与Torch应该没什么大的问题,
C++11多线程——mutex学习
Mutex也称之为互斥量,C++11中与mutex相关的类与函数声明都在头文件中。   一头文件内容简介: Classes 1.1 Mutexes mutex                               mutexclass(class) recursive_mutex                 Recursivemutex class(class) ti
C++11学习笔记-----线程库std::thread
在以前,要想在C++程序中使用线程,需要调用操作系统提供的线程库,比如linux下的。但毕竟是底层的C函数库,没有什么抽象封装可言,仅仅透露着一种简单,暴力美 C++11在语言级别上提供了线程的支持,不考虑性能的情况下可以完全代替操作系统的线程库,而且使用起来非常方便,为开发程序提供了很大的便利 Linux下的原生线程库 pthread库函数 创建线程采用pthread_creat
gcc编译选项:c++11 多线程编译
c++11原生支持多线程编程,如下代码(假设文件名为test.cpp): #include #include using namespace std; int main() {  auto fr0 = async([](){cout    fr0.get();    return 0; } 这个代码要编译过,需要使用命令: g++ -Wall -st
C++11多线程std::thread的简单使用
在cocos2dx 2.0时代,我们使用的是pthread库,是一套用户级线程库,被广泛地使用在跨平台应用上。但在cocos2dx 3.0中并未发现有pthread的支持文件,原来c++11中已经拥有了一个更好用的用于线程操作的类std::thread。cocos2dx 3.0的版本默认是在vs2012版本,支持c++11的新特性,使用std::thread来创建线程简直方便。 下面介绍下std:...
std与boost线程的一点区别,自定义线程接口类
boost有interrupt()函数,可以直接打断终止,可以打断sleep。 std的没有interrupt(),只能jion,不能打断sleep。 boost自定义线程接口 要安装boost库,包含头文件和lib,还要链接 CMakeLists.txt文件如下 cmake_minimum_required(VERSION 2.8) set(CMAKE_CXX_FLAGS &quot;${C...
[C++11 并发编程] 03 - 向线程传递参数
我们可以通过std::thread的构造函数向线程传递参数,但是默认情况下,这些参数的拷贝会被传递到线程内部,即使参数申明为引用,也是如此: void f(int i,std::string const& s); std::thread t(f,3,"hello");如上面例子所示,创建了一个线程关联到t,它会调用f(3, "hello"),虽然f的第二个参数类型为std::string,但是实
当线程函数为C++类成员函数时
很多时候我们在C++多线程开发时,都会或多或少遇到线程函数为C++类中的某个成员函数,此时可能会发生什么呢?你有可能会杂么做呢? 接下来我就为大家总结一下我在这方面走过的一个历程1.问题一记得我在之前在写一个udp传输文件的程序时,我就第一次遇到了线程函数为C++类的成员函数,当时遇到的问题,大概意思如下:#include<iostream> #include <thread> #include
Thread类以及线程的优先级与多线程
线程 是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。     每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程。每个线程都可以或不可以标记为一个守护程序。当某个线程中运行的代码创建一个新 Thread 对象时,该新线程的初始优先级被设定为创建线程的优先级,并且当且仅当创建线程是守护线程时,新线程才是守护程序。 如何实现多线程程序呢?     要实现多线程程序,...
C++11 std::thread在类的成员函数中的使用
#include &amp;lt;thread&amp;gt; #include &amp;lt;iostream&amp;gt; class Wrapper { public: void member1() { std::cout &amp;lt;&amp;lt; &quot;i am member1&quot; &amp;lt;&amp;lt; std::endl; } void member2(c...
使用C++11进行多线程开发 (std::thread)
下一次, 我一定, 好好手动保存博客 文章目录创建线程std::thread 类使用join()使用 detach()警惕作用域线程不能复制给线程传参传递指针传递引用以类成员函数为线程函数 创建线程 C++11 增加了线程以及线程相关的类, 而之前并没有对并发编程提供语言级别的支持 std::thread 类 使用 std::thread 类来创建线程, 我们需要提供的只是线程函数, 或者线...
使用boost库serialize序列化map等STL容器的最常见错误——error C2039
error C2039: 'serialize' : is not a member of 'stdext::map' 原因:因为序列化的是map类型,内部是多个键值对,如果序列化非集合类型应该不会出现这种错误 , 如果你序列化的是其他的集合类型,可以到boost/serialization/下对应的头文件,除此外还要加上boost链接库。 解决方法: (1)一定要包含
“_snprintf”: 不是“std”的成员
使用c++ json库时报错: https://github.com/nlohmann/json.git “_snprintf”: 不是“std”的成员 原文:http://47.104.72.146/?p=66 原因 在VS2015前,Windows系统头文件并没有定义snprintf宏,所以cocos2d在CCStdC-win32.h文件做了如下定义 #define ...
c++11多线程 生产者-消费者模型/条件变量condition_variable
在工作中,大家可能会碰到这样一种情况:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。在生产者与消费者之间在加个缓冲区,我们形象的称之为仓库,生产者负责往仓库了进商品,而消费者负责从仓库里拿商品,这就构成了生产者消费者模式。结构图如下: 下例中我们通过队列来模
std多线程崩溃
std多线程崩溃
c++11的多线程支持二(线程参数)
std::thread支持为线程传入参数,且支持任意类型、任意数目的参数。参数传入方式如下所示: #include #include #include #include void fun(int32_t n, std::string str, std::vector vec) { std::cout << "method one: thread start" << std::e
C++11中的进行线程同步的方法
《C++ concurreny in action》 第四章 Synchronizing concurrent operations 这一章主要讲C++11中的进行线程同步的方法 4.1 Waiting for an event or other condition 经常遇到的一种场景是一个线程A需要等待另一个线程B完成一些“事”(操作)才能往下运行继续处理。 有以下几种“办法” 一
[C++]记在Linux下使用std::thread的错误
描述 VS2017 使用Visual Studio For Linux远程连接到T家的云服务器上进行开发。 在某个地方用到了C++11标准之后的std::thread. 编译正常,在运行时遇到了错误: │terminate called after throwing an instance of 'std::system_error' │what(): Enable multithr...
c++11中多线程中Join函数
写在前面 Join函数作用: Join thread The function returns when the thread execution has completed.//直到线程完成函数才返回 This synchronizes the moment this function returns with the completion of all the ope...
std::shared_ptr<T>的对象是否是线程安全的
在MSDN的描述为:Multiple threads can simultaneously read and write different shared_ptr objects, even when the objects are copies that share ownership. 也就是说多个线程同时读写一个std::shared_ptr&amp;lt;&amp;gt;变量不安全。但多线程可以同时读写...
std::thread创建含有智能指针的线程
void process_big_object(std::unique_ptr&amp;lt;big_object&amp;gt;); std::unique_ptr&amp;lt;big_object&amp;gt; p(new big_object); p-&amp;gt;prepare_data(42); std::thread t(process_big_object,std::move(p));
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java多线程学习指南 java 多线程学习笔记