Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
undefined reference to `pthread_create'

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
abto



Anmeldungsdatum: 30.03.2002
Beiträge: 23

BeitragVerfasst am: 01. Mai 2002 15:38   Titel: undefined reference to `pthread_create'

Hallo,

ich versuche mich zur Zeit an Multithreading-Programmierung unter Linux.
Nachdem ich nun etlich Versuche gestartet habe mit den im Netz vorhanden Beispielen bin ich mit meinem Latein nun am Ende.
Wenn ich versuche ein Programm zu compilieren kommt immer eine Fehlerausgabe in folgender Form:

> g++ -D_REENTRANT -o clonetest clonetest.cpp
/tmp/ccgESqSv.o: In function `main':
/tmp/ccgESqSv.o(.text+0xbf): undefined reference to `pthread_create'
collect2: ld returned 1 exit status
>

so wie es aussieht gibt es keinen Einsprungpunkt für die Funktion zum POSIX-Konformen erzeugen eines Threads, obwohl die glibc die Unterstützung enthalten sollte (andere pthread_*-Funktionen lassen sich nämlich linken - nützt nur nix, wenn ich keine Threads erzeugen kann).

Ich hoffe Ihr könnt mir helfen das Problem zu lösen. Vieleicht hab ich auch nur was übersehen, dann öffnet mir bitte die Augen.

Danke schon im Voraus
Oliver G. "AbtO" Abt
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

domseichter



Anmeldungsdatum: 11.02.2002
Beiträge: 57
Wohnort: Laufen

BeitragVerfasst am: 01. Mai 2002 18:11   Titel: Re: undefined reference to `pthread_create'

Ich glaube Du musst Deinen code noch gegen die libpthread linken. Also so compilieren:
g++ -D_REENTRANT -lpthread -o clonetest clonetest.cpp

Cu Dom
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

Descartes
Gast





BeitragVerfasst am: 01. Mai 2002 18:17   Titel: Re: undefined reference to `pthread_create'

> /tmp/ccgESqSv.o(.text+0xbf): undefined reference to `pthread_create'
> collect2: ld returned 1 exit status

du musst gegen die libpthread linken wenn du schon Funktionen aus dieser Bibliothek benutzt

code:

frodo:~/src % cat main_thread.c
#include <pthread.h>

int main()
{
pthread_create(NULL,NULL,NULL,NULL);
return 0;
}
frodo:~/src % gcc -o main_thread_demo main_thread.c
/tmp/ccAz8303.o: In function `main':
/tmp/ccAz8303.o(.text+0xf): undefined reference to `pthread_create'
collect2: ld returned 1 exit status
frodo:~/src % gcc -o main_thread_demo main_thread.c -lpthread
^^^^^^^^^
frodo:~/src %



> so wie es aussieht gibt es keinen Einsprungpunkt für die Funktion zum
> POSIX-Konformen erzeugen eines Threads, obwohl die glibc die Unterstützung
> enthalten sollte
Wer behauptet denn, dass die PThread Funktionen in der glibc drin sind ?

> (andere pthread_*-Funktionen lassen sich nämlich linken - nützt nur nix,
> wenn ich keine Threads erzeugen kann).
Verwechselst du hier Header mit Library ?
Den Header <pthread.h> kannst du natürlich immer verwenden. Die Funktionen die darin deklariert sind, existieren jedoch nur in der libpthread, also musst du beim Linken auch diese Bibliothek verwenden indem du dem Aufruf die Option -lpthread mitgibst.
 

abto



Anmeldungsdatum: 30.03.2002
Beiträge: 23

BeitragVerfasst am: 01. Mai 2002 19:20   Titel: Re: undefined reference to `pthread_create'

: g++ -D_REENTRANT -lpthread -o clonetest clonetest.cpp
genau danach hatte ich gesucht, danke!
Manchmal sieht man halt den Wald vor lauter Bäumen nicht...

Gruß
Oliver
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy