17

我想执行以下代码。

#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”实例后调用终止什么():不允许操作

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

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

谢谢你。

4

3 回答 3

30

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

QMAKE_CXXFLAGS += -std=c++0x -pthread 
LIBS += -pthread
于 2012-07-30T07:48:44.700 回答
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
于 2012-07-29T15:57:16.547 回答
0

在此处添加命令行参数:http: //doc.qt.nokia.com/qtcreator-2.4/creator-run-settings.html

于 2012-07-29T15:55:36.033 回答