Qt Creator 2.7.0 (Qt 5.0.2) 中的 C++11 线程支持

Posted

技术标签:

【中文标题】Qt Creator 2.7.0 (Qt 5.0.2) 中的 C++11 线程支持【英文标题】:C++11 thread support in Qt Creator 2.7.0 (Qt 5.0.2) 【发布时间】:2013-05-16 23:47:50 【问题描述】:

我正在尝试使线程在 Ubuntu 下的 Qt Creator 中工作。我设置了

QMAKE_CXXFLAGS += -std=c++11 -pthread -lpthread  
CXXFLAGS += -std=c++11 -pthread -lpthread

但它仍然不会工作,会写

terminate called after throwing an instance of ‘std::system_error’ 
  what(): Operation not permitted

我尝试编译的文件是这个

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

void fun()


int main()

    thread th(&fun);
    cout << "Hello World!" << endl;
    return 0;

【问题讨论】:

你安装的gcc版本有c++11吗? 确实如此。我已经回答了我的问题,见下文。 【参考方案1】:

我必须将以下行添加到 myProject.pro 文件中

LIBS += -pthread

所以它现在可以使用这两行

QMAKE_CXXFLAGS = -std=c++11 
LIBS += -pthread

【讨论】:

有趣,我通常只做 "QMAKE_CXXFLAGS += -std=c++11" 就这样 Compiler flags != Linker flags LIBS 将标志添加到链接器,QMAKE_CXXFLAGS 或 CXXFLAGS 将标志添加到编译器!

以上是关于Qt Creator 2.7.0 (Qt 5.0.2) 中的 C++11 线程支持的主要内容,如果未能解决你的问题,请参考以下文章

Qt creator 不能包含 opencv 头文件

imx6ull应用开发 | 移植Qt 5.12.9到imx6ull并搭建qt creator开发环境

imx6ull应用开发 | 移植Qt 5.12.9到imx6ull并搭建qt creator开发环境

Qt-creator 不会在 Android 上显示本地或表达式

windows下 qt配置mingw64位 编译器

qt creator 怎么配置mingw