Ich habe Build-Programm für unten Programm mit PPC-Toolchain.Crash für Thread-Erstellung in PPC
Werkzeugkette Details: powerpc-WRS-linux-gnu-g ++ (Wind River Linux Sourcery G ++ 4.4a-341) 4.4.1
Wir haben während der Kompilierung enthalten -pthread und -lpthread für die Verknüpfung. Wir benutzen auch -lrt und -ldl Flags.
#include <string>
#include <iostream>
#include <thread>
using namespace std;
// The function we want to execute on the new thread.
void task1(string msg)
{
cout << "task1 says: " << msg;
}
int main()
{
// Constructs the new thread and runs it. Does not block execution.
thread t1(task1, "Hello");
// Makes the main thread wait for the new thread to finish execution
// therefore blocks its own execution.
t1.join();
}
Während der Ausführung des Programms bin immer den Absturz, wie unten
Program received signal SIGILL, Illegal instruction.
0x10000e30 in __gnu_cxx::__exchange_and_add(int volatile*, int)()
(gdb) bt
#0 0x10000e30 in __gnu_cxx::__exchange_and_add(int volatile*, int)()
#1 0x10000f14 in __gnu_cxx::__exchange_and_add_dispatch(int*, int)()
#2 0x10001960 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release()()
#3 0x100016ac in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count()()
#4 0x100013ac in std::__shared_ptr<std::thread::_Impl_base, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr()()
#5 0x100013e8 in std::shared_ptr<std::thread::_Impl_base>::~shared_ptr()()
#6 0x100014c0 in std::thread::thread<void (&)(std::basic_string<char, std::char_traits<char>, std::allocator<char> >), char const (&) [6]>(void (&&&)(std::basic_string<char, std::char_traits<char>, std::allocator<char> >), char const (&&&) [6])()
#7 0x10000fd4 in main()
Können Sie bitte vorschlagen sind wir etwas in den Flaggen für Build fehlt.
Wir versuchten von cout ohne msg und immer noch den gleichen Fehler. Es scheint, das ist nicht das eigentliche Problem. – rajeshkb
Können Sie versuchen, Ihre Datei wie folgt zu kompilieren: g ++ -std = C++ 11 -Pthread -o Haupt main.cpp, wobei main.cpp Quellenname ist –
Wir haben keine C++ 11-Unterstützung. Wir haben festgestellt, dass ein Problem mit dem Threading in PPC auftaucht. Wir haben mit Boost aktualisiert und es ist jetzt in Ordnung. Vielen Dank. – rajeshkb