Heim > Backend-Entwicklung > C++ > Hauptteil

Warum kann mein Multithread-C-Code nicht mit g kompiliert werden?

Mary-Kate Olsen
Freigeben: 2024-11-01 06:01:30
Original
426 Leute haben es durchsucht

Why Does My Multithreaded C   Code Fail to Compile with g  ?

Multithread-Code mit g kompilieren

Obwohl die erforderlichen Flags (-pthread -std=c 11) vorhanden sind, kann Ihr Code nicht mit kompiliert werden g , was zu dem Fehler führt: „Multithreading aktivieren, um std::thread zu verwenden: Vorgang nicht zulässig.“

Beheben des Problems

Das zugrunde liegende Problem ist auf einen Fehler zurückzuführen im gcc. Um dieses Problem zu umgehen, können Sie die folgende Problemumgehung anwenden:

<code class="bash">g++ main.cpp -o main.out -pthread -std=c++11 -Wl,--no-as-needed</code>
Nach dem Login kopieren

Verstehen der Problemumgehung

Das Flag -Wl,--no-as-needed weist die an Linker, um das dynamische Laden der Threading-Bibliothek wegzulassen. Standardmäßig bindet der Linker die Threading-Bibliothek als Teil des kompilierten Programms ein, dieser Vorgang kann jedoch unter bestimmten Bedingungen fehlschlagen.

Alternativer Compiler: clang

Als Alternative Um die g-Befehlszeile zu ändern, können Sie auch einen anderen C-Compiler wie clang verwenden. Mit dem folgenden Befehl wird Ihr Code erfolgreich kompiliert:

<code class="bash">clang++ main.cpp -o main.out -std=c++11</code>
Nach dem Login kopieren

Fazit

Indem Sie die Problemumgehung -Wl,--no-as-needed verwenden oder sich für eine Alternative entscheiden Mit einem Compiler wie clang können Sie das Multithreading-Kompilierungsproblem lösen, das bei g auftritt.

Das obige ist der detaillierte Inhalt vonWarum kann mein Multithread-C-Code nicht mit g kompiliert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!