Dans ce tutoriel, nous discuterons de certaines des principales causes de cette erreur et comment la résoudre."
Commençons.
Cause
Il y a plusieurs raisons pour lesquelles l'erreur «référence non définie à Pthread_create» se produit.
Un exemple de code est comme indiqué ci-dessous:
#inclureLe code ci-dessus contient un programme Pthread simple qui imprime simplement un simple message texte. Cependant, si nous essayons de compiler le code ci-dessus, il renvoie une erreur.
Cause 1: fichier d'en-tête de filetage manquant
En C, la possibilité de créer plusieurs threads dans un programme est fournie par le Pthread.H. Par conséquent, avant de pouvoir utiliser le pthread_create et toutes ses fonctions fournies, nous devons inclure ce fichier d'en-tête dans notre programme.
Par conséquent, dans certains cas, ne pas inclure le pthread.Le fichier d'en-tête H entraînera la référence non définie.
Nous pouvons résoudre ce problème en incluant le fichier comme indiqué:
#inclureUne fois inclus, nous pouvons procéder à compiler et tester notre programme.
Cause 2: Indicateur de compilateur incorrect
Une autre cause commune de la «référence non définie à Pthread_create» consiste à compiler votre programme avec les indicateurs de compilateur incorrects.
Par exemple, si vous compilez votre programme C avec la commande:
$ gcc -o threads posix_threads.cVous obtiendrez l'erreur «référence non définie aux pthreads».
Tout en s'assurant que les pthreads.Le fichier H est inclus dans votre fichier d'en-tête; Vous devez compiler votre code avec le bon indicateur de compilateur.
La commande correcte pour le compilateur GCC est illustrée ci-dessous:
gcc -pthread -o threads posix_threads.cN'hésitez pas à remplacer les noms de fichiers de sortie et d'entrée.
L'ajout de l'option -pthread aux commandes du compilateur permet au compilateur d'exécuter le code avec le pthread.bibliothèque H.
Cause 3: Flag de Cmake manquant
Si vous utilisez un fichier de fabrication pour compiler votre programme, vous devrez inclure les options PTHREAD dans le fichier.
Vous pouvez le faire en ajoutant la ligne suivante à votre fichier de marque.
add_compile_options (-pthread)Ou
Set (cmake_cxx_flags "$ cmake_cxx_flags -pthread")Fermeture
Dans ce court tutoriel, nous avons couvert la «référence non définie à l'erreur PTHEAD_CREATE» lorsque vous travailliez avec des threads POSIX. Bien que nous ayons couvert les causes universelles de cette erreur, vous devrez peut-être vérifier votre environnement de développement et vous assurer que les bibliothèques requises sont correctement liées.
Nous espérons que vous avez apprécié le tutoriel, merci d'avoir lu.