2010-08-07 3 views
10

C++ 0x 책의 통화를 통해 브라우징하고 샘플 코드를 실행할 것이라고 생각했습니다. 그것은 기본적으로 얻을 수 있습니다. C++ 0x "Hello Concurrent World"는 g ++/linux에서 즉시 segfaults됩니까?

#include <iostream> 
#include <thread> 

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


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

    t.join(); 
} 

는 컴파일 :

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 

이 어떤 종류의 설치/라이브러리 문제로 나타납니다 :

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

함께 붐을 이동합니다. 이것에 익숙한 사람?

답변

20

-pthread 플래그를 사용하여 컴파일/링크해야합니다.

+0

헤드 슬랩! 그게 전부 야. – ValenceElectron

+7

C++ 구현이이 세부 사항을 처리해서는 안됩니까? 그렇지 않으면 std :: thread를 사용하는 데 어떤 용도가 있습니까? –

+0

링커 오류가 발생하지 않는 이유를 모르겠습니다. –