c++11 thread --多线程编译报错问题解决办法
来源:互联网 发布:学软件编程薪资怎么样 编辑:程序博客网 时间:2024/06/06 02:30
//test.cpp#include <stdio.h>#include <iostream>#include <thread>#include <mutex>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(){ while(1){ if(count <MAX ){ mMutex.lock(); if(count <MAX ){ std::cout<<"A: "<<++count<<" "; if(++line == line_count){ std::cout<<endl; line = 0; } }else{ break; } mMutex.unlock(); } }}void thread2(){ while(1){ if(count <MAX ){ mMutex.lock(); if(count <MAX ){ std::cout<<"B: "<<++count<<" "; if(++line == line_count){ std::cout<<endl; line = 0; } }else{ break; } mMutex.unlock(); } }}int main(){ std::thread mThread1(thread1); std::thread mThread2(thread2); mThread1.detach(); mThread2.detach(); while(1){ int x; std::cin>>x; if(x==0){ break; } } return 0;}
在终端中执行:
g++ -std=c++11 test.cpp -pthread -o test.out
编译报错:
terminate called after throwing an instance of 'std::system_error'
what(): Enable multithreading to use std::thread: Operation not permitted
在网上查阅资料测试加上-Wl,--no-as-needed 就能正常编译运行了,完整的执行指令为:
g++ -std=c++11 -Wl,--no-as-needed test.cpp -pthread -o test.out
- c++11 thread --多线程编译报错问题解决办法
- QT5编辑中文字符编译报错问题解决办法
- C-Free 5.0编译失败问题解决办法
- Android 在引用Xstream 解析xml 编译报错问题解决办法
- ora-01536报错问题解决办法
- 调试xcode项目报错问题解决办法
- MAC 终端 SSH报错问题解决办法
- 安装Ecshop首页出现报错常见的问题解决办法
- 报错“计算机丢失tbb_debug.dll”问题解决办法
- cocopods 一直报错找不到头文件的问题解决办法
- Java连接虚拟机的redis报错问题解决办法
- Java连接linux虚拟机的redis报错问题解决办法
- Java连接虚拟机的redis报错问题解决办法
- Java连接虚拟机的redis报错问题解决办法
- Java连接虚拟机的redis报错问题解决办法
- Log4j的知识点以及相关报错问题解决办法
- Database类编译报错问题解决方案
- DEVC++编译奇怪报错问题解决
- 黑马程序员_毕向东_Java基础视频教程学习笔记(十一)
- 集合类层次结构关系
- 数组基础
- 排序算法的稳定性
- ARP协议的报文格式
- c++11 thread --多线程编译报错问题解决办法
- 针对JPEG压缩视频的RTP荷载格式
- 大数据阶乘C语言实现
- 常用数列
- C -- 字符串和格式化输入/输出
- H.264码流结构解析
- 使用servlet实现ajax文件上传
- How To Send SMS Text Message in iPhone Apps
- 浅谈C++多态性