Maison >développement back-end >C++ >Pourquoi mon code g std::thread ne parvient-il pas à se lier sous Linux et comment puis-je y remédier ?

Pourquoi mon code g std::thread ne parvient-il pas à se lier sous Linux et comment puis-je y remédier ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-29 16:00:15934parcourir

Why Does My g   std::thread Code Fail to Link on Linux, and How Can I Fix It?

Options de liaison pour std::thread dans GCC sous Linux

Vous rencontrez une erreur « terminer appelé » lors de la tentative d'exécution du code std::thread dans G ? Examinons le problème.

Le code fourni utilise std::thread, qui est généralement implémenté à l'aide de pthreads sous Linux. Pour résoudre le problème de liaison, l'option du compilateur -pthread est nécessaire. Cette option indique au compilateur de créer un lien avec la bibliothèque pthreads.

Essentiellement, l'option -pthread doit être placée après les fichiers sources pour garantir une liaison appropriée :

g++ -std=c++0x test.cpp -pthread

Cela demandera au compilateur de lier le programme à la bibliothèque pthreads, permettant l'utilisation de std :: thread. Sans cette option, l'éditeur de liens ne parviendra pas à trouver les symboles nécessaires dans la bibliothèque pthreads, ce qui entraînera l'erreur observée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn