web-dev-qa-db-ja.com

QtCreatorでpthreadを使用する方法

次のコードを実行したい。

#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のオプションを使用してターミナルで実行できます。 QtCreatorで-pthreadのオプションを使用する方法を教えてください。

私の開発環境はUbuntu(12.04)、g ++ 4.6.3、Qt Creator(2.4.1)です。

ありがとうございました。

14
hizz

また、-pthreadに対してリンクする必要があります。 g++ main.cpp -std=c++0x -pthreadを使用すると、すべてを1つのステップで実行するため、正しく機能します。 Qtに正しいことをさせるには、プロジェクトファイルに以下を追加します。

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

これは私のために働きます:

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
4
Andrew Tomazos

ここにコマンドライン引数を追加します: http://doc.qt.nokia.com/qtcreator-2.4/creator-run-settings.html

0
Stephen Chu