Поддержка g++ и С++ 0x
хотя было сказано, что поддержка С++ 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 = С++ 0x -Wall -o запустить main.cc
Ответы
Ответ 1
Я связал исполняемый файл с библиотекой pthread, и он сработает! Я не видел отсутствующей зависимости от общей библиотеки (ldd), но, похоже, реализация библиотеки std на С++ в Linux использует pthread внутри.
g++ thread.cpp -o thread -Wall -std=c++0x -lpthread