Как использовать pthread на 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 terminate call после вызова экземпляра 'std:: system_error' what(): операция не разрешена
Однако я могу выполнить на терминале, используя опцию -pthread.
Не могли бы вы рассказать мне, как использовать -pthread в Qt Creator?
Моя среда разработки - Ubuntu (12.04), g++ 4.6.3, Qt Creator (2.4.1).
Спасибо.
Ответы
Ответ 1
Вам также нужно установить ссылку на -pthread
. Если вы используете g++ main.cpp -std=c++0x -pthread
, вы делаете все это за один шаг, поэтому он работает правильно. Чтобы заставить Qt делать правильные вещи, добавьте в файл проекта следующее:
QMAKE_CXXFLAGS += -std=c++0x -pthread
LIBS += -pthread
Ответ 2
Это работает для меня:
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
Ответ 3
Добавьте аргументы командной строки:
http://doc.qt.nokia.com/qtcreator-2.4/creator-run-settings.html