Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide Recherche
1666 connectés 

  FORUM HardWare.fr
  Programmation
  C

  math.h

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

math.h

n°1353673
skelter
Posté le 25-04-2006 à 15:34:13  profilanswer
 

bonjour,
 
je dois utiliser la fonction double sqrt(double d) de la  bibliotheque math.h. Je mets donc  #include <math.h> en tete de mon programme
 
ca compile bien mais à l'exécution ca me met en mode debug (je suis sous visual studio 6.0) CXX0017 : Error : symbol "sqrt" not found
 
help

mood
Publicité
Posté le 25-04-2006 à 15:34:13  profilanswer
 

n°1353679
Elmoricq
Modérateur
Posté le 25-04-2006 à 15:37:16  profilanswer
 

Linké avec -lm ?


---------------
Blacker than a moonless night, hotter and more bitter than Hell itself... THAT is coffee.
n°1353682
skelter
Posté le 25-04-2006 à 15:42:05  profilanswer
 

Elmoricq a écrit :

Linké avec -lm ?


 
euh en fait je commence tout juste le C, donc je sais pas ce que veut dire linké
 

n°1353687
_darkalt3_
Proctopathe
Posté le 25-04-2006 à 15:48:41  profilanswer
 

ca veut dire qu'une fois que le compilateur vérifié que tout tes appels de fonctions, syntaxe et autre sont corrects, il va pointer ton appel à sqrt vers une adresse de la lib math: c'est le link;
 
si tu ne lui spécifie que le .h et pas de lib, il peut seulement vérifier que syntaxiquement tout est correct, mais pas faire pointer ton appel vers une bonne adresse.

n°1353692
_darkalt3_
Proctopathe
Posté le 25-04-2006 à 15:51:38  profilanswer
 

(et donc -lm c'est pour linker la lib de math, voir option -l du compilateur)

n°1353695
franceso
Posté le 25-04-2006 à 15:56:05  profilanswer
 

c'est pour ça qu'il est important de faire la différence entre bibliothèque et fichier d'en-tête.
 
math.h est seulement un fichier d'en-tête (header) qui te permet de déclarer au compilateur les prototypes des fonctions. ceci est nécessaire pour la phase de compilation.
Les fonctions ne sont réellement définies que dans la bibliothèque correspondante (par ex. libm.a / .so). C'est ce fichier qui est nécessaire pour l'édition des liens.


---------------
MAIOT : thésards du CEA Saclay --  GeoGallery : Gallerie de photos géolocalisées -- Home (Debian et Zenega S100)
n°1353698
skelter
Posté le 25-04-2006 à 15:59:50  profilanswer
 

ok
 
mais je ne peux pas savoir si le link est fait entre l'en tete et la bibliotheque pcq je suis sous visual c++
Je vais demander au service info de ma boite si c'est le cas
 
merci

n°1353699
_darkalt3_
Proctopathe
Posté le 25-04-2006 à 16:02:26  profilanswer
 

skelter a écrit :

je ne peux pas savoir si le link est fait entre l'en tete et la bibliotheque pcq je suis sous visual c++


 
T'as lu ce qui était écrit ? [:pingouino]
 
 

n°1353718
Elmoricq
Modérateur
Posté le 25-04-2006 à 16:20:46  profilanswer
 

skelter a écrit :

ok
 
mais je ne peux pas savoir si le link est fait entre l'en tete et la bibliotheque pcq je suis sous visual c++
Je vais demander au service info de ma boite si c'est le cas
 
merci


 
Le link c'est au niveau de la compilation, tu dois utiliser -lm : "-l => lier une bibliothèque", "m => fichier libm" (.dll, .so, .a ou whatever, ça dépend du système et de la méthode de liage)


---------------
Blacker than a moonless night, hotter and more bitter than Hell itself... THAT is coffee.
n°1353963
++fab
victime du syndrome IH
Posté le 25-04-2006 à 23:11:57  profilanswer
 

Un peu gros quand même :o
Bon anniversaire ?

mood
Publicité
Posté le 25-04-2006 à 23:11:57  profilanswer
 

n°1353991
Elmoricq
Modérateur
Posté le 26-04-2006 à 00:30:43  profilanswer
 

Ben, j'avoue que je me pose la question. Genre j'ai fini par en déduire que j'ai dû croiser skelter sur une autre cat de programmation. Ou alors il s'est fait voler son pseudo. Sinon des aliens l'ont enlevé pour faire des expériences, je sais pas. :o


---------------
Blacker than a moonless night, hotter and more bitter than Hell itself... THAT is coffee.
n°1354059
skelter
Posté le 26-04-2006 à 09:16:08  profilanswer
 

yen a qu'on plusieurs pseudo, d'autre qui sont plusieurs derriere un speudo

n°1354132
Emmanuel D​elahaye
C is a sharp tool
Posté le 26-04-2006 à 10:46:47  profilanswer
 

skelter a écrit :

yen a qu'on plusieurs pseudo, d'autre qui sont plusieurs derriere un speudo


Y'en a aussi qui n'ont pas de pseudo, c'est plus clair..
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1354545
franceso
Posté le 26-04-2006 à 17:14:57  profilanswer
 

lol :D
 
j'avoue qu'au début j'étais surpris, mais je me suis quand même bien fait avoir...

n°1877881
Solcarlus
http://solcarlusweb.free.fr
Posté le 26-04-2009 à 11:54:17  profilanswer
 

Bonjour,
Je fais remonter le topic à propos de ces liens genre -lm...
Je m'amuse à commencer la programmation avec des programmes tous bidons genre calculs d'une équation du second degré (delta tout ça...)

 

Il y  a des arguments à faire passer à gcc pour toutes les bibliothèques?

 

Deuxième question: comment connaitre tous les arguments de gcc.
(-l ne marche pas chez moi..)

 

Bon appétit !
Merci d'avance.

 

(ceci n'est pas un fake)

Message cité 1 fois
Message édité par Solcarlus le 26-04-2009 à 11:55:00
n°1877900
Elmoricq
Modérateur
Posté le 26-04-2009 à 13:01:14  profilanswer
 

-l fonctionne forcement sur gcc
 
Documentation : "man gcc" dans la console.

n°1879215
Emmanuel D​elahaye
C is a sharp tool
Posté le 29-04-2009 à 12:55:11  profilanswer
 

Solcarlus a écrit :

Bonjour,
Je fais remonter le topic à propos de ces liens genre -lm...
Je m'amuse à commencer la programmation avec des programmes tous bidons genre calculs d'une équation du second degré (delta tout ça...)
 
Il y  a des arguments à faire passer à gcc pour toutes les bibliothèques?


Par défaut le lien est fait avec la libc.

Citation :

Deuxième question: comment connaitre tous les arguments de gcc.


En lisant la doc...Google est ton ami...

Citation :

(-l ne marche pas chez moi..)


Tout court, non, évidemment. C'est -lm ou, plus généralement -l<nom court de bibliothèque>
 
Montre ta ligne de commande exacte et le message d'erreur..


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1879236
Solcarlus
http://solcarlusweb.free.fr
Posté le 29-04-2009 à 13:21:12  profilanswer
 

Bonjour,
 
je n'ai pas de message d'erreur. Je ne comprenais juste pas exactement à quoi correspondait -l.
Maintenant j'ai compris.
 
Google est mon ami oui , c'est grâce à lui que j'ai trouvé le lien vers ce topic.
 
Thanks.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  math.h

 

Sujets relatifs
Opengl - Light &Normales+ [edit] probleme de mathJe cherches des bonnes libs de math
Besoin d'une formule de math.[FORTRAN 77] Utiliser des librairies (math)
Besoin d'une formule de mathBesoin d'une formule de math.
[C++] Librairie de math sous linux ?un ti probleme de math
Je recherche une librairie de Math avancée[math] calcul du rayon spectral d'une matrice
Plus de sujets relatifs à : math.h



Copyright © 1997-2014 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Avis LDLC / LesNumeriques.com