我想执行以下代码。
#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)。
谢谢。
答案 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)