本文共分为两个部分,第一部分说明命令行形式下运行多线程程序。第二部分介绍 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下运行多线程程序的问题。相关推荐

  1. qt执行命令行失败_QT缺少 qtcore4.dll,debug下运行不成功

    刚装QT的时候,好像我的环境变量没有设置好,哎,.隐患终于爆发了.在VS下运行成功的QT程序,然后点击Debug下的.exe,老提示缺少Qtcore4.dll,当时正郁闷之极,忘了怎样在网页上查找,只 ...

  2. linux命令行运行c程序,如何在Linux中编写和运行C程序

    Linux正在成为开发人员的编程天堂,成为开源和免费操作系统. Turbo C编译器已经是一种编译程序的旧方法,所以让程序员转向Linux以获得新的编程环境. 在本文中,我们将解释如何编写,编译和运行 ...

  3. linux下运行python_在Linux命令行终端中使用python的简单方法(推荐)

    Linux终端中的操作均是使用命令行来进行的.因此,对于小白来说,熟记几个基本的命令行和使用方法能够较快的在Linux命令行环境中将python用起来. 打开命令行窗口 打开命令行窗口的快捷键如下: ...

  4. linux怎么让cat运行,使用lolcat让你的Linux命令行出现七彩虹

    如果想让你的 Linux 命令行即终端中显现七彩虹颜色,那就使用 lolcat,瞬间让你的终端变得五彩纷呈.现在就教你使用 lolcat 工具为所运行的程序输出七彩画面. lolcat 项目地址 安装 ...

  5. linux运行彩虹猫,在 Linux 命令行中观看彩虹猫来稍事休息

    译者: Hansong Zhang 你并且可以在终端里欣赏彩虹猫. 今天是<Linux 命令行小玩具介绍>的第六天.在本系列文章中,我们将要探求一些娱乐用途(甚至有时完全没用)的 Linu ...

  6. linux命令行大全 笔记,分享|4 个 Linux 下的命令行笔记程序

    这些工具可以让你在 Linux 命令行下简单而有效地记录笔记和保存信息. 当你需要保存代码段或 URL.想法或引用时,可能会启动文本编辑器或使用桌面或基于 Web 的笔记记录工具.但那些不是你唯一的选 ...

  7. 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 ...

  8. 基于Linux命令行终端的ftp客户端程序

    深入理解FTP(File Transfer Protocol)协议的有关知识,完成一个基于Linux命令行终端的ftp客户端程序专业程序代写大学生程序代写 转载于:https://www.cnblog ...

  9. Linux 命令行下载命令 Axel 多线程下载

    介绍: Axel 是Linux 命令行下的Http/Ftp多线程下载工具,支持断点续传,以从多个地址或者从一个地址的多个连接来下载同一个文件. 安装: Ubuntu/Debian : sudo apt ...

  10. linux命令行模式kvm,Linux命令行管理KVM虚拟机【一】 | C/C++程序员之家

    Linux命令行管理KVM虚拟机,几个常见的Linux-KVM虚拟机 管理命令,保存备用,方便快速部署搭建Linux开发环境,搞来搞去还是Linux下虚拟化好使,方便Linux和Win! virsh ...

最新文章

  1. pyqt tableWidget 单元格设置颜色
  2. esnext:最后一个参数后面也允许加逗号了
  3. JZOJ 5677. 【GDOI2018Day2模拟4.21】纽约
  4. JAVA 文件监控 WatchService
  5. 建议收藏 | 全面解析 50+条 SQL 语句性能优化策略
  6. 【零基础学Java】—this关键字的三种用法+Java继承的三个特点(二十一)
  7. JSONP和CORS两种跨域方式的介绍和方案实例
  8. java 应用 http spdy_java-删除了ALPN回调:禁用了SPDY和HTTP / 2. alpn-boot是否在引导类路径上?...
  9. 小程序解析富文本(支持视频,支持微信编辑器,支持135编辑器富文本样式)
  10. 看了这篇文章,终于知道怎么区分DV、OV、EV证书了
  11. Plotting data
  12. 安卓手机管理器_安卓如何看撤回的微信
  13. 解决Creo 5.0在打开stl模型后,无法查看左视图,右视图
  14. 揭示未来方向:2018中国TMT行业“领秀榜”盛典直击
  15. 程序员在十年后还会有现在的收入吗?
  16. Linux 下nm 、objdump 和 readelf 比较
  17. 如有需要跟我学习 触摸精灵软件的朋友请加我QQ 811037998 备注来源 CSDN
  18. 海南省文昌市谷歌卫星地图下载
  19. 米兰德比百年历史渊源
  20. wordPress mac本地安装

热门文章

  1. HC05蓝牙模块配对
  2. 汇编语言学习:VM上安装Win98系统
  3. 2000级2班同学聚会邀请函
  4. 番外7. 在 Python OpenCV 寻找目标区域以及边缘扩展的解决方案
  5. pad怎么远程服务器,iphone和ipad如何远程控制局域网电脑
  6. 中国银行计算机笔试题库,中国银行计算机笔试题
  7. 【手写源码-设计模式7】-桥接模式-基于苹果小米手机刷机场景
  8. 全国各省电信及网通DNS大全
  9. python爬取京东商品信息_python爬虫:爬取京东商品信息
  10. 典型行业大数据应用和安全风险和解决方案