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 :

Réference indéfinie vers..


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 21
    Par défaut Réference indéfinie vers..
    Bonjour, je travaille sur un projet en C, et lorsque je crée un script pour tester les différentes parties implémentes, j'ai le message d'erreur suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    /tmp/ccTOeFD9.o: dans la fonction « main »:
    test1.c:(.text+0x28): référence indéfinie vers « init »
    collect2: error: ld returned 1 exit status
    sachant que j'ai bien mis dans l'entete.

    Je précise que compile ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    clang -std=c99 -Wall -Wextra -g  -lm  test1.c   -o test1
    Merci d'avance

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 485
    Par défaut
    Bonjour,

    Ton code fait appel à une fonction « init() » ou à une variable globale « init » définie soit dans ton code, soit dans un des fichiers *.h que tu inclus et tu as oublié de lier la bibliothèque concernée à ton projet. Il manque un « -lquelquechose » à ta ligne de commande.

    Impossible de te dire laquelle sans voir ton code.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 21
    Par défaut
    Init est bien une fonction. Comment déduire la lettre qui manque?

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 485
    Par défaut
    quelquechose est en fait le nom de la bibliothèque qui contient la fonction que tu veux utiliser, privé du préfixe lib et de ses extensions. Par exemple -lm lie ton programme à /usr/lib/libm.so, fichier rassemblant toutes les fonctions mathématiques de la bibliothèque standard du langage C.

    Par ailleurs, le C est sensible à la casse : init et Init ne sont pas la même chose.

    Montre-nous ton code ici (encadré par les balises [code] et [/code]) et nous tâcherons de t'aider.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 21
    Par défaut
    Voici la fonction dont il est question
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    void init(struct list **liste, uint32_t size, uint32_t seg)
      // 
      if (*liste == NULL){
        *liste = malloc(2*sizeof(uint32_t));
      }
     
      struct list *pt2 = malloc(2*sizeof(uint32_t));
      struct list *pt3 = malloc(2*sizeof(uint32_t));
     
      uint32_t x_1 = (int) ((size - seg/2);
      uint32_t y_1 = (int) ((size + seg/2) ;
     
      uint32_t x_2 = x_1 + seg;
      uint32_t y_2 = y_1; 
     
      float dx, dy;
      dx = (float) x_1 - x_2; dy = (float) y_1 - y_2;
     
      // Calcul de x3
      float x3_tmpf = (x_1 + x_2)*cos(2*M_Pi/3);
      float x3_f = abs(x3_tmpf - dy*sin(2*M_Pi/3));
      uint32_t x_3 = (int) x3_f;
     
      // Calcul de y3
      float y3_tmpf = (y_1 + y_2)*cos(2*M_Pi/3);
      float y3_f = abs(y3_tmpf + dx*sin(2*M_Pi/3));
      uint32_t y_3 = (int) y3_f;
     
      // Attribution 
      (*liste)->x = x_1; (*liste)->y = y_1;
      pt2->x = x_2; pt2->y = y_2;
      pt3->x = x_3; pt3->y = y_3;
     
      // Chainage
      pt3->next = NULL;
      pt2->next = pt3;
      (*liste)->next = pt2;
     
    }

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Dans quel fichier est le code de la fonction init() ?

Discussions similaires

  1. référence indéfinie vers.
    Par étoile de mer dans le forum GTK+
    Réponses: 3
    Dernier message: 21/03/2014, 14h22
  2. référence indéfinie vers « _imp__Py_SetProgramName »
    Par ttf dans le forum Interfaçage autre langage
    Réponses: 5
    Dernier message: 29/03/2011, 14h01
  3. Réponses: 2
    Dernier message: 08/03/2010, 17h00
  4. référence indéfinie vers « vtable for FenPrincipale
    Par yLaplace dans le forum Débuter
    Réponses: 5
    Dernier message: 01/03/2010, 13h49
  5. Réponses: 10
    Dernier message: 02/01/2007, 12h07

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