Heim >Backend-Entwicklung >C++ >Warum kann mein g std::thread-Code unter Linux nicht verknüpft werden, und wie kann ich das beheben?
Trifft beim Versuch, std::thread-Code in G auszuführen, ein „Terminate Called“-Fehler auf? Lassen Sie uns näher auf das Problem eingehen.
Der bereitgestellte Code nutzt std::thread, das normalerweise mit pthreads unter Linux implementiert wird. Um das Verknüpfungsproblem zu beheben, ist die Compileroption -pthread erforderlich. Diese Option weist den Compiler an, eine Verknüpfung mit der pthreads-Bibliothek herzustellen.
Entscheidend ist, dass die Option -pthread nach den Quelldateien platziert werden muss, um eine ordnungsgemäße Verknüpfung sicherzustellen:
g++ -std=c++0x test.cpp -pthread
Dadurch wird der Compiler angewiesen, das Programm mit der pthreads-Bibliothek zu verknüpfen, wodurch die Verwendung von std::thread ermöglicht wird. Ohne diese Option kann der Linker die erforderlichen Symbole aus der pthreads-Bibliothek nicht finden, was zu dem beobachteten Fehler führt.
Das obige ist der detaillierte Inhalt vonWarum kann mein g std::thread-Code unter Linux nicht verknüpft werden, und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!