In questo tutorial, discuteremo alcune delle principali cause di questo errore e come risolverlo."
Iniziamo.
Causa
Ci sono diversi motivi per cui si verifica l'errore "Undefined Reference a pThread_Create".
Un codice di esempio è come mostrato di seguito:
#includereIl codice sopra contiene un semplice programma PThread che stampa semplicemente un semplice messaggio di testo. Tuttavia, se tentiamo di compilare il codice sopra, restituisce un errore.
Causa 1: file di intestazione del thread mancante
In C, la possibilità di creare più thread in un programma è fornita dalla Pthread.H. Pertanto, prima di poter utilizzare pThread_create e tutte le sue funzioni fornite, dobbiamo includere questo file di intestazione nel nostro programma.
Quindi, in alcuni casi, non riesce a includere la pthread.Il file di intestazione H si tradurrà nel riferimento immerso.
Possiamo risolvere questo problema includendo il file come mostrato:
#includereUna volta inclusi, possiamo procedere alla compilazione e alla prova il nostro programma.
Causa 2: flag di compilatore errato
Un'altra causa comune dell'errore "Undefined Reference a pThread_Create" è la compilazione del programma con i flag di compilatore errati.
Ad esempio, se stai compilando il tuo programma C con il comando:
$ gcc -o threads posix_threads.COtterrai l'errore "Undefined Reference a Pthreads".
Assicurandoti che le pthreads.Il file h è incluso nel file di intestazione; Devi compilare il codice con il flag compilatore giusto.
Il comando corretto per il compilatore GCC è mostrato di seguito:
GCC -PThread -o thread Posix_Threads.CSentiti libero di sostituire gli file di output e di input.
L'aggiunta dell'opzione -phread ai comandi del compilatore consente al compilatore di eseguire il codice con PThread.Biblioteca H.
Causa 3: bandiera cmake mancante
Se si utilizza un file Make per compilare il programma, dovrai includere le opzioni PThread nel file.
Puoi farlo aggiungendo la seguente riga al tuo file.
add_compile_options (-pThread)O
Set (cmake_cxx_flags "$ cmake_cxx_flags -pthread")Chiusura
In questo breve tutorial, abbiamo coperto il "riferimento indefinito all'errore pThread_create" quando abbiamo lavorato con i thread POSIX. Sebbene abbiamo coperto le cause universali di questo errore, potrebbe essere necessario controllare il tuo ambiente di sviluppo e garantire che le biblioteche richieste siano collegate correttamente.
Speriamo che ti sia piaciuto il tutorial, grazie per la lettura.