2010-04-18 22 views
12

g ++ desteğinin deneysel modda olduğu yeni bir özellik olduğu söylense de, birçok gcc geliştiricisi kodlarınızdaki yeni özelliklerin çoğunu kullanabileceğinizi iddia etti. program çalışması.g ++ ve C++ 0x belirtim desteği

ancak bu basit programı derlemeye çalıştığımda, bölümlendirme hatasına neden olur. Niye ya?

#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++ 0 x -Wall -o main.cc

+1

Hangi gcc sürümünü kullanıyorsunuz? –

+2

C++ içine dalmamış birisi olarak, thread nesnesinin örtük olarak başlatılması yolu şaşırtıcıdır :-) – xyz

+0

gcc sürüm 4.4.3 – sepisoad

cevap

12

I pthread kütüphanesi ile yürütülebilir bağlı ve çalıştı kaç! Eksik bir paylaşılan kitaplık bağımlılığı (ldd) görmedim, ancak Linux'ta std C++ kütüphanesi uygulaması pthread'i dahili olarak kullanıyor gibi görünüyor.

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

Aman Tanrım, Ne kadar aptalım. Teşekkürler Sumant, – sepisoad

+0

numaralı anahtarla iyi çalışıyor, g ++ 'da C++ 0x iş parçacığının ayrı bir uygulaması olacağını düşünmüştüm, ancak şu anda posix iş parçacığı kitaplığı kullandığını söylediğiniz gibi. – sepisoad