2010-08-24 6 views
5

Comment utiliser la fonction pow() et sqrt() dans Ubuntu? J'ai inclus le fichier d'en-tête math.h mais il me donne toujours une erreur.Comment utiliser pow() & sqrt() sous UNix?

+2

Quelle est l'erreur que vous obtenez? –

+0

L'utilisation de 'pow' est souvent une erreur. Si ce sont les deux seules fonctions mathématiques que vous utilisez (pour lesquelles vous avez besoin de '-lm'), vous voudrez peut-être vérifier si vous voulez réellement' pow'. Si l'exposant est toujours un entier, et/ou si la base est 2, il y a beaucoup mieux (à la fois plus rapide et garanti-précis, contrairement à 'pow ') façons de le faire. –

Répondre

7

Lien vers libm.so, en ajoutant -lm aux paramètres de la ligne de commande du compilateur.

+0

ok donc ce que vos paroles est .. que je devrais ajouter -lm après cc dans ma commande du compilateur, est-ce? – Pavitar

+0

Oui, exactement. (remplisseur). –

+1

Mettez le '-lm' à la fin de la ligne, après tous les fichiers .o et autres bibliothèques. Généralement, mettez '-lsomething' après tous les fichiers .o, de sorte que lorsque vous lisez la ligne de gauche à droite, l'éditeur de liens puisse trouver toutes les fonctions qu'il devrait inclure sans avoir à relancer la ligne. Oui, certains environnements permettent de mettre les choses dans n'importe quel ordre, mais cette règle empirique vous évitera beaucoup de souffrances lorsque vous passerez à des plates-formes qui ne le font pas. Notez que la plupart des chaînes d'outils sous Windows préfèrent cette commande, par exemple. – RBerteig

9

Essayez d'ajouter -lm à votre commande d'éditeur de liens. La plupart des fonctions mathématiques résident dans libm qui doit être explicitement lié.