Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    problema thread LINUX [c]

    ciao sto compilando una tesina per sistemi operativi, da consegnare tra l'altro domani!
    sto bloccato perche non riesco a far funzionare i thread in linux con il compilator gcc, mi da un errore del tipo:

    /tmp/ccpbhioe.o(.text+0x195):in Function 'main': undefined reference to 'pthread_create'

    io credo che sia duvuto al fatto che la versione di linux non supporta i thread , ma ho anche provato
    a compilarlo sulla versione live di knoppix ma mi da sempre lo stesso errore

    ecco il codice: come include metto

    #include <sys/types.h>
    #include <sys/ipc.h>
    #include <sys/sem.h>
    #include <stdio.h>
    #include <pthread.h>
    #include <time.h>
    #include <unistd.h>
    #include <fcntl.h>
    #define Errore_(x) { puts(x); exit(1); }
    #define KEY_SERVER 40
    #define mainfile "mainfile"
    #define key_sem1 50
    #define key_sem2 51
    #define num_client 10

    ed il codice dove creo i thread è:

    ...

    if (type == 1 || type == 3) {
    ris = pthread_create(&tid, NULL, visualizza,(void*) &richiesta);
    if (ris != 0)
    Errore_("Errore nella crezione del thread\n");
    }
    else if (type == 2) {
    ris = pthread_create(&tid, NULL, scrivi, (void*) &richiesta);
    if (ris != 0)
    Errore_("Errore nella crezione del thread\n");

    ...






    la funzione lanciata nel thread è:





    ...

    void * visualizza(void* richiesta) {

    int ris;
    struct sembuf oper;

    ric_servizio ric_aux;
    memcpy (&ric_aux, &richiesta, sizeof(ric_servizio));
    ...








    per favore aiutatemi!se volete vi mando o vi posto tutto il codice sorgente.

    grazie davvero a chiunque mi aiuti

    aspetto vostre risposte

  2. #2
    guarda quando ti da sta roba:
    /tmp/ccpbhioe.o(.text+0x195):in Function 'main': undefined reference to 'pthread_create'

    significa che c'è una libreria da linkare , e infatti mi pare,
    anche se non sono sicuro dato che non l'ho mai usata, che la
    libreria pthread non venga linkata automaticamente come ad esempio la libr stantard.

    ergo:
    prova con 'gcc -lpthread'

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.