2010-08-07 17 views
10

C++ 0x kitabındaki bir Para Birimi'nde gezinme ve örnek kodun bir çalışma vereceğini düşündüm. Elde ettiği kadar basit. C++ 0x "Merhaba Eşzamanlı Dünya" hemen g ++/linux üzerinde 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(); 
} 

ile Derleyen:

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 

çeşit bir kurulum/kütüphane mesele gibi görünüyor:

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

ile bomu gider. Buna aşina olan var mı?

cevap

20

-pthread bayrağını kullanarak derlemeniz/bağlamanız gerekir.

+0

Kafa tokat! Bu kadar. – ValenceElectron

+7

C++ uygulaması bu detayı dikkate almamalıdır mı? Aksi takdirde, std :: thread sahip olan ne var? –

+0

Neden linker hataları vermediğini anlamıyorum. –