Undefined Referenz auf pthread_create

Undefined Referenz auf pthread_create
"Wenn Sie mit POSIX -Threads in C -Programmen arbeiten. Es ist hauptsächlich mit GCC- und G ++ - Compilern unter Linux verbunden.

In diesem Tutorial werden wir einige der Hauptursachen für diesen Fehler diskutieren und wie sie behoben werden.”

Lass uns anfangen.

Ursache

Es gibt mehrere Gründe, warum der Fehler „undefinierter Verweis auf pThread_create“ auftritt.

Ein Beispielcode ist wie unten gezeigt:

#enthalten
void *thread (void *vargp);
int main ()

pthread_t Tid;
printf ("Hallo Welt aus dem Hauptfaden!\N");
pthread_create (& tid, null, thread, null);
pthread_join (TID, NULL);
pthread_exit ((void *) null);

void *thread (void *vargp)

printf ("Ich bin vom Haupt -Thread!\N");
pthread_exit ((void *) null);

Der obige Code enthält ein einfaches PThread -Programm, das einfach eine einfache Textnachricht druckt. Wenn wir jedoch versuchen, den obigen Code zu kompilieren, gibt er einen Fehler zurück.

Ursache 1: Fehlende Thread -Header -Datei

In C wird die Möglichkeit, mehrere Threads in einem Programm zu erstellen.H. Bevor wir die pThread_create und alle bereitgestellten Funktionen verwenden können, müssen wir diese Header -Datei in unser Programm aufnehmen.

Daher in einigen Fällen, die das PThread nicht einschließen können.H Header -Datei führt zu der ungeleichten Referenz.

Wir können dies beheben, indem wir die Datei wie gezeigt einbeziehen:

#enthalten

Sobald wir eingeschlossen sind, können wir unser Programm zusammenstellen und testen.

Ursache 2: Falsches Compiler -Flagge

Eine weitere häufige Ursache für den Fehler „Undefined Referenz auf pThread_create“ besteht darin, Ihr Programm mit den falschen Compiler -Flags zu kompilieren.

Wenn Sie beispielsweise Ihr C -Programm mit dem Befehl zusammenstellen:

$ gcc -o threads possix_threads.C

Sie erhalten den Fehler „Undefined Referenz auf PThreads“.

Während die phreads sicherstellen.Die H -Datei ist in Ihrer Header -Datei enthalten. Sie müssen Ihren Code mit der richtigen Compiler -Flagge kompilieren.

Der richtige Befehl für den GCC -Compiler ist unten dargestellt:

gcc -phread -o threads possix_threads.C

Fühlen Sie sich frei, die Ausgangs- und Eingabedateinamen zu ersetzen.

Durch das Hinzufügen der Option -Pthread -Option zu den Befehlen Compiler kann der Compiler den Code mit dem PThread ausführen.H Bibliothek.

Ursache 3: Cmake Flag fehlen

Wenn Sie eine Datei machen, um Ihr Programm zu kompilieren, müssen Sie die pThread -Optionen in die Datei aufnehmen.

Sie können dies tun, indem Sie Ihrer Datei die folgende Zeile hinzufügen.

add_compile_options (-phread)

Oder

Set (cmake_cxx_flags "$ cmake_cxx_flags -pThread"))

Schließen

In diesem kurzen Tutorial haben wir den Fehler „Undefined Referenz auf den Fehler pThread_create“ bei der Arbeit mit POSIX -Threads behandelt. Obwohl wir die universellen Ursachen dieses Fehlers behandelt haben, müssen Sie möglicherweise Ihre Entwicklungsumgebung überprüfen und sicherstellen, dass die erforderlichen Bibliotheken ordnungsgemäß verknüpft sind.

Wir hoffen, Sie haben das Tutorial genossen, danke fürs Lesen.