Attention, ce sujet est un sujet ancien (7125 jours sans réponse)
    Gras [b]Texte[/b] Italique [i]Italique[/i] Souligné [u]Souligné[/u] Barré [strike]Barré[/strike]
    Courriel [email=nobody@nobody.org]Nom[/email] Lien [url=http://www.website.com]Texte[/url] Ancre [anchor]Nom[/anchor] Image [img]http://www.website.com/image.jpg[/img] Insérer une image en provenance du site
    Aligné à gauche [align=left]Texte[/align] Centré [align=center]Texte[/align] Aligné à droite [align=right]Texte[/align] Toute la largeur [align=justify]Texte[/text]
    Couleur [color=#000000]Text[/color] Mise en forme [highlight=pascal]Texte[/highlight] Widgets Emoticons :code: [:code] Convertisseur HTML vers BBCode Convertisseur Word vers BBCode
    Prévisualisation Vérification de l'orthographe

    Copier Coller Couper Tout sélectionner
    Tout effacer Insérer la date Insérer l'heure Insérer la date et heure Insérer votre IP
    Liste [list=square][item]BlaBla[/item][/list] Liste Numérotée [list=decimal][item]BlaBla[/item][/list]
    Citation [quote=name]Texte[/quote] Spoiler [spoiler]James est le meurtrier![/spoiler]
    Tout en majuscules [uppercase]Texte[/uppercase] Tout en minuscules [lowercase]Texte[/lowercase] l33t [l33t]Je suis un nerd[/l33t] Texte en indice [sub]Texte[/sub] Texte en exposant [sup]Texte[/sup] Taille du texte [size=8]Texte[/size]
     
    ovh
    Je précise aussi que, pour me prouver à moi-même que je ne commets pas d'erreur de manip de Visual C++, j'ai testé l'intégration d'une autre lib tierce, à savoir Irrlicht (moteur 3D). J'ai réussi à compiler et exécuter une application exemple sans le moindre problème et à la manière du cas d'école : ajout des répertoire include/lib, compilation, exécution... :oh:

    Bref, c'est vraiment Crypto++ qui est récalcitrant :sad:

    Toute aide sera grandement appréciée :dawa:
    ovh
    Bon je me réattelle à ce vieux projet, cette fois en utilisant Visual C++ Express 2005, IDE totalement gratuit :dawa: Malheureusement... ça foire complètement, pour pas changer :kiki:

    Je me disais pourtant que là je suis en environnement classique ultra-courant pour programmer sous windows, et donc il me suffira d'indiquer le rep des include et de cryptopp.lib (et sa dll) pour que ça marche... Hé bien non :fou:
    Mes tests :
    - mon petit prog "hashtest" (présenté plus haut), plante à l'exécution, Crypto++ envoit une exception "selftest failure" :ciler:
    - alors j'essaie de compiler la lib en me disant que c'est peut-être un prob de version de compilo (ce qui déjà est pénible en soi, car à quoi ça sert de fournir un fichier lib précompilé si ça ne marche qu'avec la version précise qu'a utilisé le développeur... :kiki: ) : ça foire aussi, il me sort des erreurs très sympatiques du genre :
    'bool CryptoPP::OIDLessThan::operator ()<CryptoPP::ECP>(const CryptoPP::OID &,const CryptoPP::EcRecommendedParameters<CryptoPP::ECP> &)' : cannot convert parameter 1 from 'const CryptoPP::EcRecommendedParameters<CryptoPP::ECP>' to 'const CryptoPP::OID &'
    Reason: cannot convert from 'const CryptoPP::EcRecommendedParameters<CryptoPP::ECP>' to 'const CryptoPP::OID'
    No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called

    Supaire :kiki:
    - j'essaie avec une autre version plus ancienne (5.2.1), même genre d'erreurs...

    Bref j'en ai ma claque, marre de marre ! :fou:

    J'admets que je suis loin d'être un expert de Visual C++ puisque c'est la première fois que je l'utilise, mais bon quand même... Normalement pour compiler des sources, on indique le rep des include et des lib dans l'IDE et ça doit marcher.
    Qu'est-ce que je fais de mal ? :totoz:

    Merci pour toute aide :dawaaa:
    ArKeL
    Je sais pas si ça peut t'aider.
    Mais avec les utilitaires MinGW, il y a un petit outil qui permet de transformer les .lib Visual Studio en .a pour Dev-C++, c'est reimp.

    Il suffit de le coller dans le répertoire des libs à transformer et de faire :

    reimp <nom> (sans l'extension, .lib dans notre cas)

    http://prdownloads.sf.net/mingw/mingw-utils-0.2.tar.gz?download
    ovh
    rfr je ne sais pour quelle raison, j'avais peut-être bidouillé ton Makefile, mais bref j'ai refait le test et ça marche, lib et exe compris. Cependant ça ne résoud pas mon problème :sad: (puisque moi je parvenais aussi à sortir le libcryptopp.a)

    Voici un petit code fait rapidement pour tester la lib :

    /*
    Prog de test pour la lib Crypto++
    Compile: g++ -o hashtest hashtest.cpp -lcrypto++

    Site pour tester: http://serversniff.net/content.php?do=hash
    */

    #include <iostream>
    #include <string>

    // à remplacer par <cryptopp/...> sous windows
    #include <crypto++/cryptlib.h>
    #include <crypto++/sha.h>

    using namespace std;
    using namespace CryptoPP;

    int main() {
    string plaintext;
    byte sig[ SHA512::DIGESTSIZE ];

    cout<<"Chaîne de caractères à hasher: ";
    getline(cin, plaintext); // pour saisir des chaînes avec espaces

    // appel à la lib Crypto++ pour calculer le hash
    SHA512 hash;
    hash.CalculateDigest(sig, (byte const *)plaintext.c_str(), plaintext.size());

    cout<<"Hash ("<<SHA512::DIGESTSIZE<<" bytes) = ";
    for (int i=0; i<SHA512::DIGESTSIZE; i++) cout<<hex<<uppercase<<(int)sig[ i ]<<" ";
    cout<<dec<<nouppercase<<endl;
    }

    Ca marche nickel sous linux :dawa:

    Et sous Windows voici le résultat de la compil :
    F:\Olivier\projects\win32progs>g++ -o hashtest.exe hashtest.cpp -lcryptopp
    C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccGEbaaa.o:hashtest.cpp:(.rdata$_ZTVN8CryptoP
    P6SHA512E[vtable for CryptoPP::SHA512]+0x44): undefined reference to `CryptoPP::
    IteratedHashBase<unsigned long long, CryptoPP::HashTransformation>::TruncatedFin
    al(unsigned char*, unsigned int)'
    C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccGEbaaa.o:hashtest.cpp:(.rdata$_ZTVN8CryptoP
    P31IteratedHashWithStaticTransformIyNS_10EnumToTypeINS_9ByteOrderELi1EEELj128ELj
    64ENS_6SHA512ELj64EEE[vtable for CryptoPP::IteratedHashWithStaticTransform<unsig
    ned long long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, 64u, CryptoPP
    ::SHA512, 64u>]+0x44): undefined reference to `CryptoPP::IteratedHashBase<unsign
    ed long long, CryptoPP::HashTransformation>::TruncatedFinal(unsigned char*, unsi
    gned int)'
    C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccGEbaaa.o:hashtest.cpp:(.rdata$_ZTVN8CryptoP
    P12ClonableImplINS_6SHA512ENS_13AlgorithmImplINS_12IteratedHashIyNS_10EnumToType
    INS_9ByteOrderELi1EEELj128ENS_18HashTransformationEEES1_EEEE[vtable for CryptoPP
    ::ClonableImpl<CryptoPP::SHA512, CryptoPP::AlgorithmImpl<CryptoPP::IteratedHash<
    unsigned long long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, CryptoPP
    ::HashTransformation>, CryptoPP::SHA512> >]+0x44): undefined reference to `Crypt
    oPP::IteratedHashBase<unsigned long long, CryptoPP::HashTransformation>::Truncat
    edFinal(unsigned char*, unsigned int)'
    C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccGEbaaa.o:hashtest.cpp:(.rdata$_ZTVN8CryptoP
    P13AlgorithmImplINS_12IteratedHashIyNS_10EnumToTypeINS_9ByteOrderELi1EEELj128ENS
    _18HashTransformationEEENS_6SHA512EEE[vtable for CryptoPP::AlgorithmImpl<CryptoP
    P::IteratedHash<unsigned long long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>
    , 128u, CryptoPP::HashTransformation>, CryptoPP::SHA512>]+0x44): undefined refer
    ence to `CryptoPP::IteratedHashBase<unsigned long long, CryptoPP::HashTransforma
    tion>::TruncatedFinal(unsigned char*, unsigned int)'
    C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccGEbaaa.o:hashtest.cpp:(.rdata$_ZTVN8CryptoP
    P12IteratedHashIyNS_10EnumToTypeINS_9ByteOrderELi1EEELj128ENS_18HashTransformati
    onEEE[vtable for CryptoPP::IteratedHash<unsigned long long, CryptoPP::EnumToType
    <CryptoPP::ByteOrder, 1>, 128u, CryptoPP::HashTransformation>]+0x44): undefined
    reference to `CryptoPP::IteratedHashBase<unsigned long long, CryptoPP::HashTrans
    formation>::TruncatedFinal(unsigned char*, unsigned int)'
    collect2: ld returned 1 exit status

    :kiki:

    Help :cry:
    rfr
    Chez moi l'exe passait bien ... strange
    ovh
    Bah chez moi ça produit un fichier libcryptopp.a aussi, ça ne plante qu'à la génération de l'exe de test ce qui n'est pas mortellement grave.

    Par contre ce qui est grave, c'est que lorsque je veux intégrer la lib à un prog de test, ça plante au linkage : j'ai une chiée de "undefined reference to CryptoPP::XXX" :sad:

    Je referai le test avec ton makefile ce soir, et je posterai une mini-source C++ pour tester l'intégration de la lib.
    rfr
    Chez moi ça avait bien marcher ...
    ovh
    Damn, je t'avais pas filer le truc pour le compiler?

    Oui :dawa:
    Mais il me semble que ça ne fonctionnait pas non plus. Je réessaierai ce soir en reprenant le makefile de ton mail (c'est sur ma machine à la maison).
    rfr
    Damn, je t'avais pas filer le truc pour le compiler?
    ovh
    Dev-C++ >> windows :spamafote:

    Sous linux ça marche sans problème, merci Debian (apt-get install libcrypto++-dev :dawa: ).
    Catégorie:  






    Ada
    CSS
    Cobol
    CPP
    HTML
    Fortran
    Java
    JavaScript
    Pascal
    Perl
    PHP
    Python
    SQL
    VB
    XML
    Anon URL
    DailyMotion
    eBay
    Flickr
    FLV
    Google Video
    Google Maps
    Metacafe
    MP3
    SeeqPod
    Veoh
    Yahoo Video
    YouTube
    6px
    8px
    10px
    12px
    14px
    16px
    18px
    Informaticien.be - © 2002-2025 AkretioSPRL  - Generated via Kelare
    The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?