Подтвердить что ты не робот

Как использовать 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).

Спасибо.

4b9b3361

Ответ 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