Maison >développement back-end >C++ >Pourquoi g lance-t-il toujours « Activer le multithreading pour utiliser std::thread : opération non autorisée » même avec l'indicateur -pthread ?
Compilation de code multithread avec g
Un individu a rencontré des difficultés pour compiler du code multithread à l'aide de g , malgré la spécification des indicateurs nécessaires. Le code, qui comprend des fichiers d'en-tête pour les E/S et la manipulation des threads, était simple, contenant un thread de travail et un thread principal. Cependant, la tentative de compilation a entraîné une erreur :
terminate called after throwing an instance of 'std::system_error' what(): Enable multithreading to use std::thread: Operation not permitted Aborted (core dumped)
L'individu avait déjà inclus l'indicateur -pthread dans sa commande de compilation, ce qui est généralement recommandé pour activer le multithreading dans g . Cependant, le problème persistait.
La réponse au problème provient d'un bug dans gcc. La solution de contournement suggérée dans le dernier commentaire de la discussion sur le bug concerné consiste à ajouter l'indicateur suivant à la commande de compilation :
-Wl,--no-as-needed
En implémentant cette solution de contournement, l'individu a pu compiler et exécuter avec succès son code multithread en utilisant g .
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!