Heim >Backend-Entwicklung >C++ >Warum wirft mein Multithread-Code auch mit „-pthread' immer noch „std::system_error' aus?

Warum wirft mein Multithread-Code auch mit „-pthread' immer noch „std::system_error' aus?

Susan Sarandon
Susan SarandonOriginal
2024-11-02 09:29:31310Durchsuche

Why Does My Multithreaded Code Still Throw 'std::system_error' Even With '-pthread'?

Kompilieren von Multithread-Code mit g: 'std::system_error' behoben

Beim Kompilieren von Multithread-Code ist der Fehler „std::system_error“ aufgetreten mit g kann frustrierend sein. Trotz expliziter Angabe des Flags „-pthread“ besteht das Problem weiterhin.

Bei der Untersuchung des bereitgestellten Codes scheint es kein offensichtliches Problem zu geben. Das Problem entsteht jedoch durch einen Fehler in gcc. Die von einem Mitglied des SO C-Chats bereitgestellte Problemumgehung bietet eine Lösung:

-Wl,--no-as-needed

Wenn dieses Flag dem Kompilierungsbefehl hinzugefügt wird, behebt es das Problem und ermöglicht die erfolgreiche Kompilierung und Ausführung des Multithread-Codes. Der aktualisierte Kompilierungsbefehl wäre:

$ g++ main.cpp -o main.out -pthread -std=c++11 -Wl,--no-as-needed

Das obige ist der detaillierte Inhalt vonWarum wirft mein Multithread-Code auch mit „-pthread' immer noch „std::system_error' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn