Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Linux] Compiler en console avec math.h

Y a-t-il des linkers speciaux?

Sujet résolu
    10 juillet 2006 à 20:50:21

    Salut

    Je me suis mis a compiler en console depuis peu et la je ne comprends pas un erreur que me retourne le compilateur.
    Je suis sous Ubuntu dapper et je compile avec gcc. Voila la commande de compilation :
    gcc -Wall -g main.c -o Exe

    Il me renvoie un
    /tmp/ccrThvAB.o : Dans la fonction "main":/home/cyril/Desktop/C-C++/algo/encours(geo)/main.c:58: référence indéfinie vers « sqrt »
    collect2: ld a retourné 1 code d'état d'exécution


    J'ai bien fait #inclue <math.h> au dénut de mon fichier c et si j'enleve l'appel a la fonction sqrt() l'erreur disparait.

    Qu'est ce que je dois rajouter lors de l'apelle a gcc pour que ca marche?

    MErci de votre aide.
    • Partager sur Facebook
    • Partager sur Twitter
      10 juillet 2006 à 20:58:08

      -lm peut être je n'en suis pas sûr.

      Edit : j'espère que le #inclue <math.h> est une faute de frappe dans le forum uniquement.
      • Partager sur Facebook
      • Partager sur Twitter
        10 juillet 2006 à 21:00:54

        Merci ca marche nickel
        • Partager sur Facebook
        • Partager sur Twitter
          24 juillet 2006 à 10:48:54

          Bonjour,
          Je suis nouvellement inscrite sur ce site (genial en tous points au fait en passant). Et j'avais le meme probleme avec math.h sur une machine Sun). Je visn d'essayer -lm et ca marche effectivement. Est-ce que quelqu'un saurait ce que fait cette option -lm?
          Merci d'avance.
          • Partager sur Facebook
          • Partager sur Twitter
            24 juillet 2006 à 11:19:20

            Elle link la libraire math qui n'est pas linkée par défaut sous linux :)
            • Partager sur Facebook
            • Partager sur Twitter
              24 juillet 2006 à 11:40:02

              Citation : lilypotter

              j'avais le meme probleme avec math.h sur une machine Sun). Je visn d'essayer -lm et ca marche effectivement. Est-ce que quelqu'un saurait ce que fait cette option -lm?


              Avec gcc, les bibliothèques s'appelle libxxx.a

              Quand ond veut lier une bibliothèque, on fait :
              -lxxx

              Si le chemin est inconnu, on ajoute -Lchemin...

              Donc pour libm.a (bibliothèque mathématique (non liée par défaut pour alléger le code produit), on fait -lm. Voilà.

              Tout ceci ne tombe pas du ciel et est évidemment expliqué dans la doc de gcc...
              • Partager sur Facebook
              • Partager sur Twitter
              Music only !
                24 juillet 2006 à 12:16:14

                okay, merci beaucoup pour toutes ces explications. Je ne savais pas du tout que certaines bibliotheques n'etaient pas linkees par defaut.
                Merci. Bonne journee.
                • Partager sur Facebook
                • Partager sur Twitter

                [Linux] Compiler en console avec math.h

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown