Classe complex et cerf

franchouze Messages postés 7 Date d'inscription vendredi 8 août 2003 Statut Membre Dernière intervention 12 octobre 2006 - 11 oct. 2006 à 13:53
franchouze Messages postés 7 Date d'inscription vendredi 8 août 2003 Statut Membre Dernière intervention 12 octobre 2006 - 12 oct. 2006 à 16:53
Bonjour,


j'essaye d'utiliser en C++ (gcc v3.4.1) la classe complex et les
fonctions associées (dans l'exemple cerf, version complexe de erf) mais pendant la compilation, elle n'est pas trouvée


voici mon code :


#include

#include

#include <fstream>

#include <string>

#include <math.h>

#include <complex> // ou <complex.h> ca ne change rien


using namespace std;


int main( int argc, char *argv[] )

{

  complex <double> toto(1,1);

  cout << toto << endl;

  cout<< cerf( toto ) << endl;

 

  return(1);

}


l'erreur de compilation
error: `cerf' undeclared (first use this function)


J'ai essayé de mettre erf( toto) mais il n'accepte que des doubles et pas des complexes

Quelqu un a une idée ?


Merci pour votre aide

François

6 réponses

turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
11 oct. 2006 à 14:11
c'est bien complex.h l'include pour cerf par contre pour erf c'est math.h. Mais je vois que tu les a mit.
 As-tu bien pensé a rajouter -lm sur la ligne de linkage ?

TuRn3r
0
franchouze Messages postés 7 Date d'inscription vendredi 8 août 2003 Statut Membre Dernière intervention 12 octobre 2006
11 oct. 2006 à 14:36
Le -lm c est pour l'édition de lien non ? Il devrait quand meme me compiler mon objet et apres faire les liens.


Au cas ou j ai essayé avec le meme programme avec la ligne de compilation


g++ -O0 -g  -c -o -lm HauteurDouble.o HauteurDouble.cpp

ca me marque les memes erreurs plus d'autres :


n file included from /vespasien/data/cellier/Prog/C++/OBJ.linux/UTIL/HauteurDouble.o:0:

HauteurDouble.cpp: In function `int main(int, char**)':

HauteurDouble.cpp:15: error: `cerf' undeclared (first use this function)

HauteurDouble.cpp:15: error: (Each undeclared identifier is reported only once for each function it appears in.)

HauteurDouble.cpp:16: error: cannot convert `std::complex<double>' to `double' for argument `1' to `double erf(double)

HauteurDouble.o: At global scope:

HauteurDouble.o:1: error: stray '\239' in program

HauteurDouble.o:1:136: warning: null character(s) ignored

HauteurDouble.o:1: error: stray '\131' in program

HauteurDouble.o:1: error: stray '\236' in program

etc...
0
turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
11 oct. 2006 à 15:07
Re,
 essaye
#include
#include
#include <cmath>
#include <sstream>

TuRn3r
0
franchouze Messages postés 7 Date d'inscription vendredi 8 août 2003 Statut Membre Dernière intervention 12 octobre 2006
11 oct. 2006 à 15:34
Toujours pas... :/


Tu connais une commande pour trouver le fichier header <complex>
? Je voudrais vérifier ce qu'il y a dedans pour voir si cerf est bien
déclaré. Si ca se trouve peut etre que ma version de libgcc n est pas
bonne...


En tout cas merci beaucoup de perséverer :))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
11 oct. 2006 à 15:42
Pour trouver une expr dans un fichier :
sous Linux :
grep ce_que_tu_cherche ou_tu_le_cherche

ex :
#> grep cerf *

Sinon, le fichier header doit etre dans /usr/include ou dans usr/local/include
pour le trouver :
#> updatedb
#> locate complex

ou
find / -name complex

TuRn3r
0
franchouze Messages postés 7 Date d'inscription vendredi 8 août 2003 Statut Membre Dernière intervention 12 octobre 2006
12 oct. 2006 à 16:53
J'ai regardé dans les fichiers complex.h et complex : dans la version 3.4.1 de gcc y a pas de cerf  :/

Je comprends pas d'où viens la page cerf lorsque je fais un "man"...


Est ce que tu pourrais me dire quelle version de librairie gcc tu as stp ?


merci pour ton aide :)
0
Rejoignez-nous