000
20.07.2005, 16:02 Uhr
~Michael_Z.
Gast
|
Hallo,
ich habe leider ein dummes Problem mit der Crypto++ library von Wei Dai. Ich habe diese mit dem vorhandenen Projekten problemlos benutzen können. Nun aber habe ich versucht mit VS 2003.NET die crypto.lib für ein simples Programm zu verwenden - leider erfolglos.
Nachdem ich über die Projekt Eigenschaften den Pfad zu den Headern der crypto++ angegeben und diese entsprechend includiert habe, erhalte ich beim Linken immer einige LNK 2001 Errors. Nachdem ich alle unnötigen Codezeilen und Dateien entfernt habe sieht mein Code jetzt so aus:
C++: |
#include "dll.h" #include <iostream> #include <string> #include "MD5.h" #include "SHA.h" #include <sha.h> #include <md5.h> #include "md5.h" #include "ripemd.h" #include "rng.h" #include "gzip.h" #include "default.h" #include "randpool.h" #include "ida.h" #include "base64.h" #include "wait.h" #include "factory.h" #include "validate.h" #include "bench.h"
USING_NAMESPACE(CryptoPP) USING_NAMESPACE(std)
void DigestFile(const char *filename) { MD5 md5; SHA sha; RIPEMD160 ripemd; SHA256 sha256; HashFilter md5Filter(md5), shaFilter(sha), ripemdFilter(ripemd), sha256Filter(sha256);
auto_ptr<ChannelSwitch> channelSwitch(new ChannelSwitch); channelSwitch->AddDefaultRoute(md5Filter); channelSwitch->AddDefaultRoute(shaFilter); channelSwitch->AddDefaultRoute(ripemdFilter); channelSwitch->AddDefaultRoute(sha256Filter); FileSource(filename, true, channelSwitch.release());
HexEncoder encoder(new FileSink(cout), false); cout << "\nMD5: "; md5Filter.TransferTo(encoder); cout << "\nSHA-1: "; shaFilter.TransferTo(encoder); cout << "\nRIPEMD-160: "; ripemdFilter.TransferTo(encoder); cout << "\nSHA-256: "; sha256Filter.TransferTo(encoder); }
int main() { CryptoPP::MD5 test; DigestFile("c:\\test.dat");
return 0; }
|
Leider immer noch mit den Linker Fehlern. Ich vermute das die Projekteinstellungen nicht korrekt sind, speziell die in den Linker Angaben. Falls jemand weiß wie die Einstellungen unter Visual Studio 2002/2003.NET aussehen oder warum ich diese Fehler erhalte würde ich mich über dessen Hilfe sehr freuen.
PS: Die Error Messages
main.obj : error LNK2001: unresolved external symbol "public: __thiscall CryptoPP:L_GroupPrecomputation<struct CryptoPP::ECPPoint>:L_GroupPrecomputation<struct CryptoPP::ECPPoint>(class CryptoPP:L_GroupPrecomputation<struct CryptoPP::ECPPoint> const &" (??0?$DL_GroupPrecomputation@UECPPoint@CryptoPP@@@CryptoPP@@$$FQAE@ABV01@@Z) main.obj : error LNK2001: unresolved external symbol "public: __thiscall CryptoPP::EC2N::EC2N(class CryptoPP::EC2N const &" (??0EC2N@CryptoPP@@$$FQAE@ABV01@@Z) main.obj : error LNK2001: unresolved external symbol "public: __thiscall CryptoPP:L_GroupPrecomputation<struct CryptoPP::EC2NPoint>:L_GroupPrecomputation<struct CryptoPP::EC2NPoint>(class CryptoPP:L_GroupPrecomputation<struct CryptoPP::EC2NPoint> const &" (??0?$DL_GroupPrecomputation@UEC2NPoint@CryptoPP@@@CryptoPP@@$$FQAE@ABV01@@Z) main.obj : error LNK2001: unresolved external symbol "public: __thiscall CryptoPP::FileSink::FileSink(class std::basic_ostream<char,struct std::char_traits<char> > &" (??0FileSink@CryptoPP@@$$FQAE@AAV?$basic_ostream@DU?$char_traits@D@std@@@std@@@Z) main.obj : error LNK2001: unresolved external symbol "public: __thiscall CryptoPP::FileSource::FileSource(char const *,bool,class CryptoPP::BufferedTransformation *,bool)" (??0FileSource@CryptoPP@@$$FQAE@PBD_NPAVBufferedTransformation@1@1@Z) main.obj : error LNK2001: unresolved external symbol "public: __thiscall CryptoPP::ChannelSwitch::ChannelSwitch(void)" (??0ChannelSwitch@CryptoPP@@$$FQAE@XZ) main.obj : error LNK2001: unresolved external symbol "public: __thiscall CryptoPP::RawDES::RawDES(class CryptoPP::RawDES const &" (??0RawDES@CryptoPP@@$$FQAE@ABV01@@Z) main.obj : error LNK2001: unresolved external symbol "public: __thiscall CryptoPP::IteratedHash<unsigned int,struct CryptoPP::EnumToType<enum CryptoPP::ByteOrder,1>,64,class CryptoPP::HashTransformation>::IteratedHash<unsigned int,struct CryptoPP::EnumToType<enum CryptoPP::ByteOrder,1>,64,class CryptoPP::HashTransformation>(class CryptoPP::IteratedHash<unsigned int,struct CryptoPP::EnumToType<enum CryptoPP::ByteOrder,1>,64,class CryptoPP::HashTransformation> const &" (??0?$IteratedHash@IU?$EnumToType@W4ByteOrder@CryptoPP@@$00@CryptoPP@@$0EA@VHashTransformation@2@@CryptoPP@@$$FQAE@ABV01@@Z)
Güße Michael |