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

Dev-C++ Discussion :

Pb de compilation " [Linker error] undefined reference to `__cpu_features_init' "


Sujet :

Dev-C++

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Pb de compilation " [Linker error] undefined reference to `__cpu_features_init' "
    Bonsoir,

    je suis un débutant en C++, j'ai crée un programme qui utilise les sockets, mon compilateur est Dev-C++, aprés la compilation j'ai reçus l'erreur suivant:

    [Linker error] undefined reference to `__cpu_features_init'

    j'attend l'aide de vous, avec tous mes respects.
    Merci d'avance,

  2. #2
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Résolu pour moi.
    C'est un mix de bibliothèques.
    Mingw est installé séparément pour code::blocks.
    J'ai recopié le contenu du répertoire lib de mingw dans le répertoire lib de
    wxdevcpp et ça marche.
    (Truc trouvé sur un autre thread)

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Points : 6
    Points
    6
    Par défaut quasiement le même problème avec le devpak GSL
    J'ai installé dans Dev-C++ le package GSL, et les fichiers headers semblent s'etre correctement ajoutés dans le repertoire include.

    Cependant, lorsque j'essaye de compiler ce petit programme trouvé dans un tutorial, j'ai l'erreur suivante:

    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
     
    #include <stdlib.h>
    #include <ctime>
    #include <iostream>
    #include <time.h>
    #include <gsl/gsl_randist.h>
    #include <gsl/gsl_rng.h>
     
    using std::cout;
    using std::endl;
     
    int main(int argc, char *argv[]) {
      gsl_rng *r;   
      // Générateur de nombres aléatoires
     
      // Creation du générateur (ici, Mersenne Twister)
      r = gsl_rng_alloc(gsl_rng_mt19937);
     
      // Initialisation de la graine
      gsl_rng_set(r, time(NULL));
     
      // Génération de nombres suivant la loi de Gauss
      double sigma = 1;
     
      cout << "Loi de Gauss avec sigma= " << sigma << endl;
      for(int i = 0; i < 20; i++)
        cout << i << " : " << gsl_ran_gaussian(r, sigma) << endl;
     
     
      // Destruction du générateur
      gsl_rng_free(r);
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     Compilateur: Default compiler
    Exécution de  g++.exe...
    g++.exe "XXXX.cpp" -o "XXXX.exe"    -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include"  -I"C:\Dev-Cpp\include\c++\3.4.2\backward"  -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32"  -I"C:\Dev-Cpp\include\c++\3.4.2"  -I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib" 
     
     undefined reference to `gsl_rng_mt19937'
     undefined reference to `gsl_rng_alloc'
     undefined reference to `gsl_rng_set'
     undefined reference to `gsl_ran_gaussian'
     undefined reference to `gsl_rng_free'
    collect2: ld returned 1 exit status
     
    Exécution terminée
    J'ai aussi remarqué que le dossier include du repertoire mingw32\ possedait des fichiers nommés pareil que Dev-Cpp\include\ , mais avec des tailles différentes. C'est louche non? Mais ca n'a sans doute rien a voir avec mo probleme...

    [EDIT]
    J'ai finalement trouvé tout seul: il faut rajouter -lgsl dans la ligne de commande. DU coup ca me compile bien le code. Par contre le fichier *.exe est foireux, ca me donne une erreur windows qui me propose d'envoyer q microsoft cette erreur (vous voyez de quelle boite de diqlogue je parle?)

    Si quelqu'un pouvait corriger mon code please j'en ai marre il est 4h20 et j'aimerai avancer
    [/EDIT]

  4. #4
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Procédons par éliminations:
    Tu as bien inclus
    #include <gsl/gsl_randist.h>
    #include <gsl/gsl_rng.h>
    Et il ne dit pas "fichiers inexistants".
    Donc il les trouve.
    Cela dit il s'agit d'une erreur de compilation, et pas du linker ...
    La seule possibilité est donc que les headers ne contiennent pas ce qu'ils devraient contenir.
    Mon conseil ouvre les headers impliqués et fait une recherche sur les termes 'introuvables' pour voir s'ils y sont vraiment.

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci de ta réponse.
    Je n'ai pas avancé. j'ai ouvert les headers en questions, mais ca a l'air assez complexe. Je continue a farfouiller.

    Par contre, j'ai plus d'info sur l'erreur que me fait le fichier executable: C'est une segmentation error!

    Sais tu ce que ca signifie en general?

    Ci joint une copie d'ecran de l'erreur obtenue. j'ai remarqué qu'il croit (je ne sais pas qui) que je suis sous NT alors que je fais tourner un bon vieux XP...
    bizarre, aurais je loupé une etape a l'installation de qqchose?
    Images attachées Images attachées  

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    C'est une segmentation error! Sais tu ce que ca signifie en general?
    Ouh là ! Tu dois débuter en C. Tu n'as pas fini d'en voir des segmentations fault. C'est une erreur comment dire ... inattendue dans le code. L'utilisation d'un pointeur nul, un indice de tableau incorrect peuvent être la cause d'un segmentation fault. Il va donc te falloir débugger ton code pour savoir où ça plante. Dev-Cpp dispose d'un debugger qui te permet d'exécuter ton code pas à pas et de voir à quel moment il échoue. Autrement, tu peux mettre des printfs dans ton code (suivi de fflush(stdout)) un peu partout et voir à quel moment ils n'apparaissent plus mais c'est un peu du bricolage.

    j'ai remarqué qu'il croit (je ne sais pas qui) que je suis sous NT alors que je fais tourner un bon vieux XP...
    XP est considéré comme un système NT, c'est normal.
    Il y a eu la famille des 9x de 95 à Windows Millenium. XP et Windows 2000 proviennent eux de la famille NT.


    Sinon, du point de vue de la compilation, tu as résolu ton problème. La remarque de Zavonen était un peu tardive. Il te faut maintenant trouver le problème dans ton code.

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/06/2009, 20h34
  2. Réponses: 5
    Dernier message: 04/10/2007, 18h11
  3. Réponses: 1
    Dernier message: 14/11/2006, 11h12
  4. [Linker error] undefined reference to...
    Par z980x dans le forum C++
    Réponses: 4
    Dernier message: 05/03/2006, 15h30
  5. [Linker error] undefined reference to 'IcmpSendEcho@'
    Par Xevious dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 29/12/2005, 16h45

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