lima-city: Webhosting, Domains und Cloud
0 Pluspunkte 0 Minuspunkte

Ich versuche das folgende Programm mit gcc zu kompilieren.

#include <stdio.h>
#include <pthread.h>

void *test(void *arg) {
    int i = 0;
    
    while(i < 10000) {
        i++;
    }
    
    printf("\n-> %d <-\n", i);
    
    return NULL;
}

int main() {
    pthread_t thread;
    
    if (pthread_create(&thread, NULL, test, NULL)) {
        fprintf(stderr, "Fehler beim Erstellen des Threads\n");
        return 1;
    }
    
    // Warte auf das Beenden des Threads
    pthread_join(thread, NULL);
    
    return 0;
}

Dabei bekomme ich die Fehleranzeige

C:\Users\alex\AppData\Local\Temp\ccq3alcI.o:main.c:(.text+0x64): undefined reference to `pthread_create'
C:\Users\alex\AppData\Local\Temp\ccq3alcI.o:main.c:(.text+0xb3): undefined reference to `pthread_join'

Wie kann ich dieses Programm richtig kompilieren?

bezieht sich auf eine Antwort auf: Windows Thread erstellen in C
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Du musst pthread mit dem -l Parameter verlinken.

gcc file.c -lpthread
von (626 Punkte)  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Fragen und Antworten bewerten
  • Themen von Fragen bearbeiten
  • Fragen, Antworten und Kommentare bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft.

2.3k Fragen

2.8k Antworten

261 Kommentare

13 Nutzer