2012-12-23 13 views
11

Dla małego projektu szkolnego muszę stworzyć prostą konstrukcję klient/serwer, która będzie działać na routerze (z openWRT) i próbuję zrobić coś z wątkami w tej aplikacji.XCode std :: thread C++

Moje umiejętności w C++ są bardzo ograniczone, więc znalazłem to na podstawowym przykładzie na internet.

#include <thread> 
#include <iostream> 

void doSomeWork(void) 
{ 
    std::cout << "hello from thread..." << std::endl; 
    return; 
} 

int main(int argc, char *argv[]) 
{ 
    std::thread t(doSomeWork); 
    t.join(); 
    return 0; 
} 

Kiedy próbuję uruchomić to w Xcode (4.5.2) pojawia się następujący błąd:

Attempt to use an deleted function

I to pokazuje jakiś kod:

__threaad_execute(tuple<_Fp, _Args...>& __t, __tuple_indices<_Indices...>) 
{ 
    __invoke(_VSTD::move(_VSTD::get<0>(__t)), _VSTD::move(_VSTD::get<_Indices>(__t))...); 
} 

myślę trzeba coś zrobić z "ustawieniami kompilacji" lub "biblioteką linków" czy czymś? Ale nie jestem do końca pewien, co robić dokładnie. Pomyślałem, że muszę ustawić następujące ustawienia (which i found here)

  • W zakładce Ustawienia budowania projektu, przewiń w dół do „Apple LLVM Compiler 4.1 - Język”
  • Wybierz ustawienie „C++ Język dialekt” na " C++ 11 [-std = C++ 11]”
  • wybrać ustawienie "ustawienia C++ standardowa biblioteka" na "libC++ (LLVM standard C++ biblioteki z C++ 11 wsparcie)"

Ale te gdzie już ustawiono.

Czy jest jakaś flaga/biblioteka lub coś, czego mi brakuje?

+1

Myślisz, że otrzymasz C++ STD na platformie osadzonej? Pomyśl jeszcze raz. – Linuxios

+0

Nie wiem, OpenWRT to system oparty na systemie Linux. Więc myślę, że będzie tam? – Matthijn

+4

Cóż, z pewnością będzie to C STD, ale C++ może być trochę intensywny dla routera. Jeśli potrzebujesz wątków, a C++ nie działa, przejdź do 'pthread' systemu Linux. Ponadto, dlaczego pracujesz dla Linuksa w Xcode na LLVM? Potrzebujesz GCC i kompilacji crossowej. – Linuxios

Odpowiedz

2

Użyj G ++ zamiast LLVM w XCode. Nie zapomnij połączyć wątku libs (-lpthread - lub -pthread, -lrt) w ustawieniach kompilacji kompilatora. I liczyć się z różnicami w zachowaniu wątków w systemie Windows/Mac/Linux (pomimo tego, że jest to POSIX).

Powiązane problemy