Как скомпилировать и запустить C ++ 0x с GCC / G ++ в Eclipse CDT? - PullRequest
2 голосов
/ 04 июля 2010

Я пытаюсь понять, как использовать предстоящий выпуск C ++ 0x. Он должен быть доступен в GCC 4.3+ с использованием опции gcc std = gnu ++ 0x.

Моя простая потоковая программа, использующая 0x компиляции в Eclipse CDT с std = gnu ++ 0x, добавленная в Project> свойства> C / C ++ Build> Настройки> Разное> Другие флаги.

#include <iostream>
#include <thread>
using namespace std;

void hello()
{
    cout << "Hello Concurrent World!" << endl;
}

int main()
{
    cout << "starting" << endl;
    thread t(hello);
    t.join();
    cout << "ending" << endl;
    return 0;
}

Программа печатает только «запуск» и возвращает 0. Кто-нибудь знает, почему она не запускает функцию hello с многопоточностью?

1 Ответ

3 голосов
/ 24 марта 2011

Чтобы использовать потоки, вам также необходимо создать ссылку на библиотеку потоков.Если вы этого не сделали, добавьте -lpthread в вашу командную строку или, в вашем случае, в другое поле флагов.

Выполнение командной строки (видимое в окне консоли в eclipse) должно выглядеть следующим образом:

gcc -std=gnu++0x -lpthread <source_file_name>.cc

...