Résoudre les problèmes de liaison lors de l'utilisation de std::thread avec GCC sous Linux
Dans le domaine du multithreading avec C, la bibliothèque standard C fournit la classe std::thread. Lorsque vous tentez d'utiliser std::thread avec GCC sur un système Linux, l'erreur suivante peut survenir :
terminate called after throwing an instance of 'std::system_error' what(): Operation not permitted Aborted
Cause :
Cette erreur indique qu'une liaison appropriée les options n'ont pas été spécifiées pour que le compilateur résolve les dépendances liées à std::thread. Plus précisément, sous Linux, la bibliothèque pthread est impliquée dans l'implémentation de std::thread.
Solution :
Pour résoudre ce problème, l'option du compilateur -pthread doit être employé. Cette option demande au compilateur de lier le programme à la bibliothèque pthread. Voici comment compiler correctement le code avec l'option de liaison appropriée :
g++ -std=c++0x test.cpp -pthread
Placement de l'option de liaison :
Il est crucial de noter que l'option -pthread doit être répertoriée après le fichier source (.cpp) lors de la compilation. Cela garantit que le compilateur résout correctement les dépendances.
Commande révisée :
Après avoir ajouté l'option -pthread, la commande de compilation révisée apparaîtra comme :
g++ -std=c++0x test.cpp -pthread
En incorporant l'option -pthread, le code sera compilé et exécuté avec succès, permettant à std::thread de fonctionner comme prévu. multithreading dans votre environnement Linux.
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!