Maison > Article > développement back-end > Pourquoi mon programme multithread C génère-t-il une erreur « Opération non autorisée » malgré l'utilisation de \'-pthread\' ?
Problème :
Malgré l'utilisation de l'indicateur '-pthread' recommandé , vous rencontrez une erreur d'exécution lorsque vous tentez de compiler et d'exécuter un programme C multithread avec g . Le message d'erreur indique "Opération non autorisée" lors de la tentative d'utilisation de l'objet 'std::thread'.
Solution possible :
Le problème peut être dû à un bug dans le compilateur g. Pour résoudre ce problème, appliquez la solution de contournement suivante :
Ajoutez l'indicateur '-Wl,--no-as-needed' à la commande de compilation. Cet indicateur indique à l'éditeur de liens de ne pas considérer le symbole « pthreads » comme nécessaire au programme.
Commande de compilation révisée :
g++ main.cpp -o main.out -pthread -std=c++11 -Wl,--no-as-needed
Cette solution de contournement devrait vous permettre de compilez et exécutez votre code multithread avec succès.
Remarque :
Ce problème a été signalé sur le outil de suivi des bugs officiel de g, et un correctif est attendu dans le futur. Cependant, la solution de contournement fournie ici devrait résoudre le problème pour le moment.
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!