Linux命令行运行多线程程序 和 QT集成IDE下运行多线程程序的问题。
本文共分为两个部分,第一部分说明命令行形式下运行多线程程序。第二部分介绍 QT集成IDE下多线程程序的运行。
第一部分: Linux命令行形式下运行多线程程序
在linux命令行下编译多线程程序时,需要添加 -lpthread,现在通过实验来说明命令行下的多线程程序运行:
实验中使用的程序代码如下:
#include <iostream>
#include <thread>
#include <chrono>void foo()
{// simulate expensive operationstd::this_thread::sleep_for(std::chrono::seconds(1));
}void bar()
{// simulate expensive operationstd::this_thread::sleep_for(std::chrono::seconds(1));
}int main()
{std::cout << "starting first helper...\n";std::thread helper1(foo);std::cout << "starting second helper...\n";std::thread helper2(bar);std::cout << "waiting for helpers to finish..." << std::endl;helper1.join();helper2.join();std::cout << "done!\n";
}
未添加-lpthread的运行命令:
g++ 3.cpp
运行结果出错:
/tmp/ccOfil6u.o:在函数‘std::thread::thread<void (&)()>(void (&)())’中:
3.cpp:(.text._ZNSt6threadC2IRFvvEJEEEOT_DpOT0_[_ZNSt6threadC5IRFvvEJEEEOT_DpOT0_]+0x2f):对‘pthread_create’未定义的引用
collect2: error: ld returned 1 exit status
添加 -lpthread的运行命令:
g++ 3.cpp -lpthread
运行结果;
starting first helper...
starting second helper...
waiting for helpers to finish...
done!
第二部分: 使用QT集成IDE进行多线程程序的运行
此部分分为两个小节。 第一小节 。 第二小节使用cmake编译程序。
1 使用qmake编译程序
为了避免出现命令行编译时出现上述的线程问题,我们的解决方法如下:
打开项目的 .pro文件, 在文件中输入 LIBS += -lpthread 即可 。注意: 在qmake下存在.pro文件。 cmake编译下是不存在这个文件的。
2 cmake 编译程序
在CMakeLists.txt文件中添加
set(CMAKE_CXX_FLAGS " -std=c++11 -march=native -O3 -pthread" )
就可以解决上述出现的问题。
Linux命令行运行多线程程序 和 QT集成IDE下运行多线程程序的问题。相关推荐
- qt执行命令行失败_QT缺少 qtcore4.dll,debug下运行不成功
刚装QT的时候,好像我的环境变量没有设置好,哎,.隐患终于爆发了.在VS下运行成功的QT程序,然后点击Debug下的.exe,老提示缺少Qtcore4.dll,当时正郁闷之极,忘了怎样在网页上查找,只 ...
- linux命令行运行c程序,如何在Linux中编写和运行C程序
Linux正在成为开发人员的编程天堂,成为开源和免费操作系统. Turbo C编译器已经是一种编译程序的旧方法,所以让程序员转向Linux以获得新的编程环境. 在本文中,我们将解释如何编写,编译和运行 ...
- linux下运行python_在Linux命令行终端中使用python的简单方法(推荐)
Linux终端中的操作均是使用命令行来进行的.因此,对于小白来说,熟记几个基本的命令行和使用方法能够较快的在Linux命令行环境中将python用起来. 打开命令行窗口 打开命令行窗口的快捷键如下: ...
- linux怎么让cat运行,使用lolcat让你的Linux命令行出现七彩虹
如果想让你的 Linux 命令行即终端中显现七彩虹颜色,那就使用 lolcat,瞬间让你的终端变得五彩纷呈.现在就教你使用 lolcat 工具为所运行的程序输出七彩画面. lolcat 项目地址 安装 ...
- linux运行彩虹猫,在 Linux 命令行中观看彩虹猫来稍事休息
译者: Hansong Zhang 你并且可以在终端里欣赏彩虹猫. 今天是<Linux 命令行小玩具介绍>的第六天.在本系列文章中,我们将要探求一些娱乐用途(甚至有时完全没用)的 Linu ...
- linux命令行大全 笔记,分享|4 个 Linux 下的命令行笔记程序
这些工具可以让你在 Linux 命令行下简单而有效地记录笔记和保存信息. 当你需要保存代码段或 URL.想法或引用时,可能会启动文本编辑器或使用桌面或基于 Web 的笔记记录工具.但那些不是你唯一的选 ...
- linux: 命令行运行php Run PHP from the command line
As an alternative to /opt/lampp/bin/php, to run a php script from the command line, you just need to ...
- 基于Linux命令行终端的ftp客户端程序
深入理解FTP(File Transfer Protocol)协议的有关知识,完成一个基于Linux命令行终端的ftp客户端程序专业程序代写大学生程序代写 转载于:https://www.cnblog ...
- Linux 命令行下载命令 Axel 多线程下载
介绍: Axel 是Linux 命令行下的Http/Ftp多线程下载工具,支持断点续传,以从多个地址或者从一个地址的多个连接来下载同一个文件. 安装: Ubuntu/Debian : sudo apt ...
- linux命令行模式kvm,Linux命令行管理KVM虚拟机【一】 | C/C++程序员之家
Linux命令行管理KVM虚拟机,几个常见的Linux-KVM虚拟机 管理命令,保存备用,方便快速部署搭建Linux开发环境,搞来搞去还是Linux下虚拟化好使,方便Linux和Win! virsh ...
最新文章
- pyqt tableWidget 单元格设置颜色
- esnext:最后一个参数后面也允许加逗号了
- JZOJ 5677. 【GDOI2018Day2模拟4.21】纽约
- JAVA 文件监控 WatchService
- 建议收藏 | 全面解析 50+条 SQL 语句性能优化策略
- 【零基础学Java】—this关键字的三种用法+Java继承的三个特点(二十一)
- JSONP和CORS两种跨域方式的介绍和方案实例
- java 应用 http spdy_java-删除了ALPN回调:禁用了SPDY和HTTP / 2. alpn-boot是否在引导类路径上?...
- 小程序解析富文本(支持视频,支持微信编辑器,支持135编辑器富文本样式)
- 看了这篇文章,终于知道怎么区分DV、OV、EV证书了
- Plotting data
- 安卓手机管理器_安卓如何看撤回的微信
- 解决Creo 5.0在打开stl模型后,无法查看左视图,右视图
- 揭示未来方向:2018中国TMT行业“领秀榜”盛典直击
- 程序员在十年后还会有现在的收入吗?
- Linux 下nm 、objdump 和 readelf 比较
- 如有需要跟我学习 触摸精灵软件的朋友请加我QQ 811037998 备注来源 CSDN
- 海南省文昌市谷歌卫星地图下载
- 米兰德比百年历史渊源
- wordPress mac本地安装