Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
non reconnaissance de la fonction sin()
Envoyé par: SKOUBY

Bonjour svp, j'ai un petit prob dans Kdevelop. JE compile le code

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main (void)
{
double result, x=0.5;
result = sin(x);
printf("The sine of %lf is %lf\n", x, result);
return EXIT_SUCCESS;
}

et malgré l'ajout de la librairie tgmath.h
on ne reconnait toujours pas la fonction sinus.

j'utilise Mandriva 2007.0.
Aidez-moi svp.

Poste le Sunday 12 August 2007 06:47:44
Répondre     Citer    
Re: non reconnaissance de la fonction sin()
Envoyé par: abgech

Citation
SKOUBY
et malgré l'ajout de la librairie tgmath.h on ne reconnait toujours pas la fonction sinus.

Les fichiers *.h ne sont pas des librairies ! Ce sont des fichiers inclus au niveau du code source, qui contiennent, entre autres, les prototypes des fonctions.

Sous Linux (et les Unix et dérivés), il existe essentiellement deux types de librairies:
1) Les librairies statiques, dont le contenu est incorporé au moment du link-edit, lors de la compilation.
2) Les librairies partagées, dont le contenu est incorporé lors du chargement du programme en mémoire. C'est une explication plus simple que la réalité, puisqu'en fait, il n'existe qu'une seule copie en mémoire d'un module de librairie partagée, quel que soit le nombre de processus qui l'utilise, mais cette explication convient pour une première approche.

Pour ton problème pratique, la fonction sin() se trouve dans la librairie statique libm.a, tu dois indiquer au linker que tu souhaites utiliser cette librairie en ajoutant dans ta ligne de commande de gcc l'option : -lm

..................
Parce qu'il avait une clôture à utiliser, l'homme invente la propriété privée. --- F. Cavanna

Poste le Sunday 12 August 2007 08:53:06
Répondre     Citer    
Re: non reconnaissance de la fonction sin()
Envoyé par: SKOUBY

MERVEILLEUX !!!!!
franchement j'ai passé ma soirée a chercher l'erreur !!!
BOn alors,pour ceux qui auront le même prob : les informations sont sur ...Lea Linux bien sur à l'adresse : [www.lea-linux.org]

sinon si vous utilisez pas la console et plutot Kdev alors
Projet> Options du projet>
"Options de COnfigure">C>
Drapeau de compilateur (CFLAGS) et on ajoute -lm (moi j'avais avant (-O0 -g3 )

Voila !!!

Poste le Sunday 12 August 2007 19:58:54
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
non reconnaissance de la fonction sin()
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons