Поддержка спецификаций g ++ и c ++ 0x - PullRequest
12 голосов
/ 19 апреля 2010

, хотя было сказано, что поддержка новых функций c ++ 0x в g ++ находится в экспериментальном режиме, многие разработчики gcc утверждали, что вы можете использовать большинство новых функций в своих кодах и заставить программу работать.

но когда я пытаюсь скомпилировать эту простую программу, это приводит к ошибке сегментации. Почему?

#include <thread>
#include <iostream>

void my_thread_func()
{
    std::cout<<"hello"<<std::endl;
}

int main()
{
    std::thread t(my_thread_func);
    t.join();
}

g ++ -std = c ++ 0x -Wall -o запустить main.cc

1 Ответ

12 голосов
/ 19 апреля 2010

Я связал исполняемый файл с библиотекой pthread, и это сработало! Я не увидел какой-либо отсутствующей зависимости разделяемой библиотеки (ldd), но кажется, что реализация библиотеки std C ++ в Linux использует pthread для внутреннего использования.

g++ thread.cpp -o thread -Wall -std=c++0x -lpthread
...