Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1174 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  ISO C++ forbids declaration of SHA1

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

ISO C++ forbids declaration of SHA1

n°2057893
razuki
Posté le 18-02-2011 à 18:03:32  profilanswer
 

Bonjour,
 
le projet consiste à développer une stack ssl sur TCP. avant que je reprenne les codes sources, la stack ssl a été simulée. le gens qui étaient dessus utilisaient par exemple hashlib++ pour pouvoir utiliser des fonctions de hashage.
 
j'ai donc commencé par faire un #include <openssl/ ...>
 
avant que j'implémente openssl, le projet compile bien. après avoir implémenté openssl, j'obtiens les erreurs suivantes :
 

Code :
  1. In file included from /home/moi/work/include/hashlib++/hashlibpp.h:50,
  2.                  from /home/moi/work/ail/dummyupd.cpp:24:
  3. /home/moi/work/include/hashlib++/hl_sha1wrapper.h:74: error: ISO C++ forbids declaration of ‘SHA1’ with no type
  4. /home/moi/work/include/hashlib++/hl_sha1wrapper.h:74: error: expected ‘;’ before ‘*’ token
  5. In file included from /home/moi/work/include/hashlib++/hashlibpp.h:51,
  6.                  from /home/moi/work/ail/dummyupd.cpp:24:
  7. /home/moi/work/include/hashlib++/hl_sha256wrapper.h:77: error: ISO C++ forbids declaration of ‘SHA256’ with no type
  8. /home/moi/work/include/hashlib++/hl_sha256wrapper.h:77: error: expected ‘;’ before ‘*’ token
  9. make[2]: *** [CMakeFiles/ail.dir/dummyupd.cpp.o] Erreur 1
  10. make[1]: *** [CMakeFiles/ail.dir/all] Erreur 2
  11. make: *** [all] Erreur 2


 
apparemment il ne sait pas à quelle namespace appartient SHA1 et SHA256 ... mais je ne suis pas sur, je suis débutant en cpp.
 
Est ce que quelqu'un pourrait m'expliquer
1) d'ou vient exactement l'erreur
2) comment corriger
 
Merci d'avance.
 
contenu de hashlibpp.h (ligne 50 )

Code :
  1. #include "hl_exception.h"
  2. #include "hl_hashwrapper.h"
  3. #include "hl_md5wrapper.h"
  4. #include "hl_sha1wrapper.h" // LIGNE 50
  5. #include "hl_sha256wrapper.h"
  6. #include "hl_sha384wrapper.h"
  7. #include "hl_sha512wrapper.h"


 
contenu de dummyupd (ligne 24 ):

Code :
  1. #include <hashlibpp.h> // ligne 24


 
contenu de hl_sha1wrapper.h (ligne 74)

Code :
  1. SHA1 *sha1; // ligne 74


 

mood
Publicité
Posté le 18-02-2011 à 18:03:32  profilanswer
 

n°2057896
gilou
Modérateur
Modzilla
Posté le 18-02-2011 à 18:10:16  profilanswer
 

1) Ben clairement, il a pas la définition de SHA1 au moment ou il rencontre SHA1 *sha1;
2) Inclure ce qu'il faut pour qu'il ait cette definition à ce moment la. En principe hl_sha1wrapper.h contient un #include "hl_types.h" qui contient la def de cette classe, mais on dirait que la, il est pas trouvé, donc si il y a cet #include dans hl_sha1wrapper.h c'est que le fichier n'est pas trouvé, ou que quand il est lu, il saute la définition de SHA1  (un #ifdef ?)
A+,

Message cité 1 fois
Message édité par gilou le 18-02-2011 à 18:15:33

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2057907
razuki
Posté le 18-02-2011 à 20:04:28  profilanswer
 

gilou a écrit :

1) Ben clairement, il a pas la définition de SHA1 au moment ou il rencontre SHA1 *sha1;
2) Inclure ce qu'il faut pour qu'il ait cette definition à ce moment la. En principe hl_sha1wrapper.h contient un #include "hl_types.h" qui contient la def de cette classe, mais on dirait que la, il est pas trouvé, donc si il y a cet #include dans hl_sha1wrapper.h c'est que le fichier n'est pas trouvé, ou que quand il est lu, il saute la définition de SHA1  (un #ifdef ?)
A+,


 
Ok. je verrai ca plutard. Mais j'ai pensé à une solution temporaire pour que mon code compile :
 
en fait les erreurs se trouvent dans le fichier dummyupd.cpp, un fichier source que je n'utilise pas pour l'instant. ce fichier inclut l'entête hashlibpp.h que j'ai alors commenté. Du coup je dois "désactiver" les instructions qui se rapportent à cette librairie. Heureusement ces instructions en questions sont regroupées dans une fonction de vérification qui renvoie 0 si tout va bien et -1 sinon.
 
Ma question :
 
il y a t - il un moyen de "desactiver" le code de la fonction de verif de telle sorte que quand je compile, je n'ais plus d'erreur ?
j'ai entendu parler de #IF 0 ... #ENDIF mais je ne sais pas comment s'en servir de ce macro pour désactiver.

n°2057937
gilou
Modérateur
Modzilla
Posté le 18-02-2011 à 22:27:28  profilanswer
 

Désolé, mais je ne cautionne pas la programmation vaudou et autres "solution temporaire pour que mon code compile".
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

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

  ISO C++ forbids declaration of SHA1

 

Sujets relatifs
[C++] Comment récupérer La mémoire virtuelle occupée par un processus?Erreur dans l'appel d'une procédure stockée sous Visual C++ (6.0)
[C#] Web service et message SOAP XML[PYTHON] Module C++ pour python
Recherche le titre d'un bouquin C++Programmation en C, besoin d'aide
Problème C++ : Syntax error : missing ';'[C++] Fenêtre SDL ne s'affiche pas [RESOLU]
Plus de sujets relatifs à : ISO C++ forbids declaration of SHA1


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR