Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C++0x "Hello Concurrent World" immediately segfaults on g++/linux?

Browsing through a Currency in C++0x book and thought I would give the sample code a run. It is as basic as it gets.

#include <iostream>
#include <thread>

void hello()
{
    std::cout<<"Hello Concurrent World\n";
}


int main(int argc, char *argv[])
{
    std::thread t(hello);

    t.join();
}

Compiled with:

g++ -std=c++0x -g -o pgm pgm.cpp

Goes boom with:

Program received signal SIGSEGV, Segmentation fault.
_dl_fixup (l=0x7ffff7b0992c, reloc_arg=<value optimized out>) at ../elf/dl-runtime.c:147
147     ../elf/dl-runtime.c: No such file or directory.
        in ../elf/dl-runtime.c

Appears to be a setup/library issue of some kind. Anyone familiar with this?

like image 540
ValenceElectron Avatar asked Aug 07 '10 21:08

ValenceElectron


1 Answers

You need to compile/link using the -pthread flag.

like image 157
nos Avatar answered Nov 15 '22 17:11

nos