msmsms Posted January 27, 2016 at 09:15 PM Report Share #592685 Posted January 27, 2016 at 09:15 PM estou a tentar resolver um problema com semáforos mas quando tento utilizar a função sem_init() obtenho erro e diz que tem referência indefinida sabem-me dizer porquê? eu tenho a biblioteca de semáforos incluída #include<semaphore.h> #include<sys/sem.h> ////////////////////////////////////////////////////////////// int pos_escrita; int pos_leitura; ////////////////////////////////////////////////////////////// int buffer[10]; //capacidade para 10 ////////////////////////////////////////////////////////////// pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; sem_t vazio; sem_t cheio; ////////////////////////////////////////////////////////////// // IDs das threads int id_produtores[100]; int id_consumidores[10]; ////////////////////////////////////////////////////////////// void init(){ sem_init(&vazio, 0, 10); sem_init(&cheio, 0, 0); pos_escrita = 0; pos_leitura = 0; } ////////////////////////////////////////////////////////////// int main(){ int i; init(); pthread_t threads[2]; // nº de threads for(i=0; i<10;i++){ } printf("\n"); return 0; } ////////////////////////////////////////////////////////////// o erro da consola: /tmp/ccTcI1EU.o: In function `init': f.c:(.text+0x1e): undefined reference to `sem_init' f.c:(.text+0x3a): undefined reference to `sem_init' collect2: ld returned 1 exit status Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 27, 2016 at 09:43 PM Report Share #592687 Posted January 27, 2016 at 09:43 PM eu tenho a biblioteca de semáforos incluída engraçado, porque é exatamente isso que o compilador se está a queixar. e de toda a informação que apresentas, nenhuma é a confirmação do que disseste IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
msmsms Posted January 27, 2016 at 10:31 PM Author Report Share #592691 Posted January 27, 2016 at 10:31 PM engraçado, porque é exatamente isso que o compilador se está a queixar. e de toda a informação que apresentas, nenhuma é a confirmação do que disseste eu não entendi Link to comment Share on other sites More sharing options...
Colector Boy Posted January 28, 2016 at 01:04 AM Report Share #592696 Posted January 28, 2016 at 01:04 AM (edited) Penso que tens que linkar a tua biblioteca fazendo algo do género: gcc [lista_argumentos] -lpthread onde lista_argumentos e a lista onde dizes que opções vais utilizar -o, -W, etc, e que ficheiros,.c, .cpp, .o, etc, queres utilizar para gerar o teu executável. Edited January 28, 2016 at 01:05 AM by Colector Boy Link to comment Share on other sites More sharing options...
msmsms Posted January 28, 2016 at 08:08 AM Author Report Share #592701 Posted January 28, 2016 at 08:08 AM Penso que tens que linkar a tua biblioteca fazendo algo do género: gcc [lista_argumentos] -lpthread onde lista_argumentos e a lista onde dizes que opções vais utilizar -o, -W, etc, e que ficheiros,.c, .cpp, .o, etc, queres utilizar para gerar o teu executável. obrigado Link to comment Share on other sites More sharing options...
Colector Boy Posted January 28, 2016 at 08:34 PM Report Share #592736 Posted January 28, 2016 at 08:34 PM (edited) De nada. Espero que tenhas conseguido resolver o problema. Edited January 28, 2016 at 08:35 PM by Colector Boy Link to comment Share on other sites More sharing options...
msmsms Posted January 30, 2016 at 10:06 PM Author Report Share #592830 Posted January 30, 2016 at 10:06 PM (edited) De nada. Espero que tenhas conseguido resolver o problema. existe algum forma de eu não ser obrigado a utilizar o -pthread na compilação do program? ou seja, existe forma de eu incluir alguma instrução no corpo do meu código para que o comando: gcc prog.c continue a funcionar mesmo estando a trabalhar com threads e semáforos? Edited January 30, 2016 at 10:10 PM by msmsms Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted January 31, 2016 at 01:31 AM Report Share #592835 Posted January 31, 2016 at 01:31 AM não IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now