IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

[Erreur CMAKE] référence indéfinie - collect2: error ld returned 1 exit status


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [Erreur CMAKE] référence indéfinie - collect2: error ld returned 1 exit status
    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.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Comme marqué dans la documentation des mqueue, il faut ajouter le flag -lrt. Donc, ilm faut le faire dans le CMakeLists
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    effectivement c'est assez frustrant merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/10/2011, 22h31
  2. Réponses: 0
    Dernier message: 05/06/2011, 00h07
  3. erreur : collect2: ld returned 1 exit status
    Par MounaR dans le forum C++
    Réponses: 2
    Dernier message: 05/05/2011, 17h56
  4. error: collect2: ld returned 1 exit status
    Par tamildark dans le forum Débuter
    Réponses: 4
    Dernier message: 10/01/2011, 17h56
  5. collect2: ld returned 1 exit status
    Par marie mouse dans le forum Débuter
    Réponses: 19
    Dernier message: 17/12/2009, 16h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo