#include <semaphore.h>
sem_t mutex;
int main (int argc, char * argv[])
{
sem_init (&mutex,0,1);
}
Je reçois:Pourquoi ce code sémaphore est-il en panne?
/tmp/ccAMFxDX.o: In function `main':
programaservidor.c:(.text+0x86): undefined reference to `sem_init'
collect2: ld returned 1 exit status
Je suis novice en la matière. Pouvez-vous décrire de manière un peu plus détaillée ce que vous voulez dire en liant avec -lrt ou -pthread? – Unome
@Un certain sûr, voir [ce lien] (http://en.wikipedia.org/wiki/Linker_%28computing%29) pour avoir une meilleure compréhension de ce qu'est le lien. Chaque fois que vous voyez une option '-l' passée à une commande gcc, c'est une directive indiquant au lieur qu'il doit regarder une bibliothèque appelée pour trouver le code objet nécessaire pour créer l'exécutable. Dans le cas de l'OP, le code objet de la fonction appelée 'sem_init' se trouve dans la bibliothèque' pthread'. –
SiegeX
Génial, le code qui m'a été donné a été enveloppé avec un fichier make, donc j'ai dû ajouter le -pthread pour qu'il s'exécute. Merci! – Unome