2011-08-10 3 views
1

J'essaye de créer un programme C++ en utilisant Crypto ++ (avec Code :: Blocks), mais je reste coincé avec le même problème. J'utilise une version réduite de ce code: http://andreyvitdev.blogspot.com/2005/10/crypto-usage-sample.html , mais je ne peux pas le compiler.Crypto ++ Code :: blocks Pro Undblème de référence non défini

#include "cryptopp/blowfish.h" 
#include "cryptopp/osrng.h" 

using namespace CryptoPP; 

int main (int argc, char** argv) { 

    byte key[Blowfish::DEFAULT_KEYLENGTH], 
      iv[Blowfish::BLOCKSIZE]; 

    AutoSeededRandomPool rng (true); 
    rng.GenerateBlock(key, sizeof (key)); 
    rng.GenerateBlock(iv, sizeof (iv)); 

} 

Je reçois des erreurs multiples, en commençant par: « C: \ Users \ Utilisateur \ Programmation \ C++ \ CodeBlocks \ testeur Crytp \ main.cpp | 13 | undefined reference to` cryptopp :: RandomNumberGenerator :: GenerateBlock (non signé char *, unsigned int) '"

Ai-je raté quelque chose? Il y a beaucoup de références sur les différents sites aux bibliothèques qui doivent être importées, mais je n'ai pas pu savoir où elles étaient dans le dossier crypto ++: http://www.cryptopp.com/#download

+0

On dirait que vous oubliez de lier la bibliothèque. Vérifiez comment spécifier les bibliothèques à lier dans Code :: Blocks et ajoutez 'cryptopp'. – pmr

+0

+1 pour inclure un programme exemple minimal et complet. Pour plus d'informations sur les raisons de cet important, voir http://sscce.org/. –

+0

Ok, je vais jeter un bon coup d'oeil autour, mais où serait la bibliothèque de cryptopp exaxtly être trouvé? – Kalessar

Répondre

3

"Référence non définie" est une erreur de lien - soit vous n'avez pas construit la bibliothèque Crypto ++, ou n'a pas dit à l'éditeur de liens de lier.

Je ne suis pas certain si elle va construire en utilisant MinGW (le compilateur le plus commun avec des blocs de code) cependant. Les compilateurs Microsoft (avec Visual Studio) sont gratuits; et sont testés explicitement avec Code :: Blocks et Crypto ++.

+0

J'utilise le compilateur GNU GCC avec des codesblocks, devrais-je en choisir un autre? – Kalessar

+0

@Kalessar: GCC ne fonctionne pas sous Windows. Il y a soit MinGW (qui contient un (mauvais) port de GCC à Windows), soit GCC à l'intérieur de Cygwin. GCC est un excellent compilateur pour les plateformes UNIX, mais sur Windows MinGW ça pue vraiment. (Il ne peut pas créer de binaires natifs x64, par exemple) –

Questions connexes