Heim > Artikel > Backend-Entwicklung > Warum gibt mein C-Multithread-Programm trotz der Verwendung von „-pthread“ den Fehler „Vorgang nicht zulässig“ aus?
Problem:
Trotz Verwendung des empfohlenen Flags „-pthread“. Wenn Sie versuchen, ein Multithread-C-Programm mit g zu kompilieren und auszuführen, tritt ein Laufzeitfehler auf. Die Fehlermeldung zeigt „Vorgang nicht zulässig“ an, wenn versucht wird, das Objekt „std::thread“ zu verwenden.
Mögliche Lösung:
Das Problem kann auf Folgendes zurückzuführen sein: Fehler im g-Compiler. Um dieses Problem zu beheben, wenden Sie die folgende Problemumgehung an:
Hängen Sie das Flag „-Wl,--no-as-needed“ an den Kompilierungsbefehl an. Dieses Flag weist den Linker an, das Symbol „pthreads“ nicht als für das Programm erforderlich zu berücksichtigen.
Überarbeiteter Kompilierungsbefehl:
g++ main.cpp -o main.out -pthread -std=c++11 -Wl,--no-as-needed
Diese Problemumgehung sollte es Ihnen ermöglichen Kompilieren Sie Ihren Multithread-Code und führen Sie ihn erfolgreich aus.
Hinweis:
Dieses Problem wurde im offiziellen G-Bug-Tracker gemeldet und eine Behebung wird in Zukunft erwartet. Die hier bereitgestellte Problemumgehung sollte das Problem jedoch vorerst beheben.
Das obige ist der detaillierte Inhalt vonWarum gibt mein C-Multithread-Programm trotz der Verwendung von „-pthread“ den Fehler „Vorgang nicht zulässig“ aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!