次のコードを実行したい。
#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)です。
ありがとうございました。
また、-pthread
に対してリンクする必要があります。 g++ main.cpp -std=c++0x -pthread
を使用すると、すべてを1つのステップで実行するため、正しく機能します。 Qtに正しいことをさせるには、プロジェクトファイルに以下を追加します。
QMAKE_CXXFLAGS += -std=c++0x -pthread
LIBS += -pthread
これは私のために働きます:
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
ここにコマンドライン引数を追加します: http://doc.qt.nokia.com/qtcreator-2.4/creator-run-settings.html