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?
Myślisz, że otrzymasz C++ STD na platformie osadzonej? Pomyśl jeszcze raz. – Linuxios
Nie wiem, OpenWRT to system oparty na systemie Linux. Więc myślę, że będzie tam? – Matthijn
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