如何在Qt Creator上使用pthread

时间:2012-07-29 15:40:07

标签: c++ qt c++11 qt-creator

我想执行以下代码。

#include <iostream>
#include <thread>

void output() {
    std::cout << "Hello World" << std::endl;
}

int main()
{
    std::thread t(output);
    t.join();

    return 0;
}

我无法执行它。

Qt Creator输出         抛出'std :: system_error'的实例后终止调用           what():不允许操作

但是我可以使用-pthread选项在终端上执行。 你能告诉我如何在Qt Creator中使用-pthread选项吗?

我的开发环境是Ubuntu(12.04),g ++ 4.6.3,Qt Creator(2.4.1)。

谢谢。

3 个答案:

答案 0 :(得分:27)

您还需要关联-pthread。如果您使用g++ main.cpp -std=c++0x -pthread,您只需一步即可完成所有操作,因此它可以正常运行。要使Qt做正确的事情,请将以下内容添加到项目文件中:

QMAKE_CXXFLAGS += -std=c++0x -pthread 
LIBS += -pthread

答案 1 :(得分:4)

这对我有用:

TEMPLATE = app
TARGET = 
DEPENDPATH += .
INCLUDEPATH += .

# Input
SOURCES += test.cpp

QMAKE_CXXFLAGS += -std=gnu++0x -pthread
QMAKE_CFLAGS += -std=gnu++0x -pthread

您的示例使用我系统上的.pro文件正确编译并执行。

尝试将您的示例保存为test.cpp,并将上述内容保存为同一目录中的project.pro。然后输入:

$ qmake
$ make
$ ./project
Hello World

答案 2 :(得分:0)