Maison  >  Article  >  développement back-end  >  Pourquoi mon code multithread renvoie-t-il toujours \'std::system_error\' même avec \'-pthread\' ?

Pourquoi mon code multithread renvoie-t-il toujours \'std::system_error\' même avec \'-pthread\' ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 09:29:31297parcourir

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

Compilation de code multithread avec g : 'std::system_error' résolue

Rencontre de l'erreur 'std::system_error' lors de la compilation de code multithread avec g peut être frustrant. Malgré la spécification explicite de l'indicateur « -pthread », le problème persiste.

En examinant le code fourni, il ne semble y avoir aucun problème apparent. Cependant, le problème vient d'un bug dans gcc. La solution de contournement fournie par un membre du chat SO C propose une solution :

-Wl,--no-as-needed

Lorsqu'il est ajouté à la commande de compilation, cet indicateur résout le problème, permettant au code multithread de se compiler et de s'exécuter avec succès. La commande de compilation mise à jour serait :

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

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