Bonjour, je travaille sur un projet en c avec le CMakeLists.txt suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
cmake_minimum_required(VERSION 2.6)
 
project(Serveur_client C)
 
add_executable(client client.c)
add_executable(serveur serveur.c)
l'erreur se trouve dans mon fichier serveur dans lequel j'essaye d'ouvrir une file de messages.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <fcntl.h>
#include <sys/stat.h>
#include <mqueue.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main()
{
    mqd_t mq;
    int priorite;
    const char name='s';
 
    if((mq=mq_open(&name,O_RDWR | O_CREAT, 0777,NULL)) == (mqd_t) -1)
    {
        perror("mq_open");
        exit(EXIT_FAILURE);
    }
    return EXIT_SUCCESS;
 
}
Mon erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
[ 50%] Built target client
Scanning dependencies of target serveur
[100%] Building C object CMakeFiles/serveur.dir/serveur.c.o
Linking C executable serveur
CMakeFiles/serveur.dir/serveur.c.o: dans la fonction « main »:
serveur.c:(.text+0x28): référence indéfinie vers « mq_open »
collect2: error: ld returned 1 exit status
make[2]: *** [serveur] Erreur 1
make[1]: *** [CMakeFiles/serveur.dir/all] Erreur 2
make: *** [all] Erreur 2
Voilà, si vous pouvez m'aider je vous en serai très reconnaissant, J'ai regardé dans le man, je ne pense pas que cela vient de mq_open. Je précise que suis sur linux mint 17.3 et que mes autres projets arrivent à compiler sur cmake. Cependant ce n'est pas la première fois que je vois cette erreur surtout quand je réalisais mes propres library.