|
View:
New views
3 Messages
—
Rating Filter:
Alert me
|
|
|
Compile error with g++ (using DefaultEncryptor)Hello I will a simple code to encrypt and decrypt a string. I wrote following Code: __________________________________________________________ #include <iostream> #include <stdlib.h> //#include <cryptopp/cryptlib.h> #include <cryptopp/default.h> #include <cryptopp/hex.h> //#include "cryptopp/modes.h" //#include "cryptopp/aes.h" using namespace CryptoPP; using namespace std; // encode a string using passPhrase and encode it in hex // returns the ciphertext, which should be deleted by caller char *EncryptString(const char *instr, const char *passPhrase) { unsigned int len=strlen(instr); char* outstr; DefaultEncryptor encryptor(passPhrase, new HexEncoder); //DefaultEncryptorWithMAC encryptor(passPhrase, new HexEncoder); encryptor.Put((byte *)instr, len); encryptor.MessageEnd(); unsigned int outputLength = encryptor.MaxRetrievable(); outstr = new char[outputLength+1]; encryptor.Get((byte *)outstr, outputLength); outstr[outputLength] = 0; return outstr; } int main() { //cout << crypt("firstpas", "as"); << "\n"; cout << EncryptString("test string", "passwd") << "\n"; return 0; } __________________________________________________________ And tried to compile it with g++ (without any command options, is there needed any?) I use GNU/Linux(Ubuntu 8.10). I tested with g++ 4.1 and 4.2 and 4.3. but I get a long error output that says undefined reference to `CryptoPP::.... A part of error: /tmp/ccZbCSRe.o: In function `EncryptString(char const*, char const*)': crypt-test.cpp:(.text+0x138): undefined reference to `CryptoPP::DefaultEncryptor::DefaultEncryptor(char const*, CryptoPP::BufferedTransformation*)' crypt-test.cpp:(.text+0x34d): undefined reference to `CryptoPP::BufferedTransformation::MaxRetrievable() const' crypt-test.cpp:(.text+0x37d): undefined reference to `CryptoPP::BufferedTransformation::Get(unsigned char*, unsigned int)' /tmp/ccZbCSRe.o: In function `CryptoPP::SecBlock<unsigned char, CryptoPP::AllocatorWithCleanup<unsigned char, false> >::SecBlock (unsigned int)': crypt-test.cpp: (.text._ZN8CryptoPP8SecBlockIhNS_20AllocatorWithCleanupIhLb0EEEEC1Ej [CryptoPP::SecBlock<unsigned char, CryptoPP::AllocatorWithCleanup<unsigned char, false> >::SecBlock (unsigned int)]+0x25): undefined reference to `CryptoPP::AllocatorWithCleanup<unsigned char, false>::allocate (unsigned int, void const*)' /tmp/ccZbCSRe.o: In function `CryptoPP::SecBlock<unsigned char, CryptoPP::AllocatorWithCleanup<unsigned char, false> >::~SecBlock()': And when I give option "-lcryptopp" to g++, running command: g++ crypt-test.cpp -lcryptopp Then I get this error (newly after previous like long error): /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libcrypto++.so: undefined reference to `pthread_key_create' /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libcrypto++.so: undefined reference to `pthread_getspecific' /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libcrypto++.so: undefined reference to `pthread_key_delete' /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libcrypto++.so: undefined reference to `pthread_setspecific' collect2: ld returned 1 exit status Please help me. Thanks --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to cryptopp-users-unsubscribe@.... More information about Crypto++ and this group is available at http://www.cryptopp.com. -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: Compile error with g++ (using DefaultEncryptor)You'll need to link to cryptopp and to all its dependencies. So make that -lcryptopp -lpthread and other libs it might need (just look up those undefined symbols and find out which library are they from). On Jul 27, 4:38 am, "saeed.gnu" <saeed....@...> wrote: > Hello > I will a simple code to encrypt and decrypt a string. I wrote > following Code: > > __________________________________________________________ > #include <iostream> > #include <stdlib.h> > //#include <cryptopp/cryptlib.h> > #include <cryptopp/default.h> > #include <cryptopp/hex.h> > //#include "cryptopp/modes.h" > //#include "cryptopp/aes.h" > > using namespace CryptoPP; > > using namespace std; > > // encode a string using passPhrase and encode it in hex > // returns the ciphertext, which should be deleted by caller > char *EncryptString(const char *instr, const char *passPhrase) { > unsigned int len=strlen(instr); > char* outstr; > > DefaultEncryptor encryptor(passPhrase, new HexEncoder); > //DefaultEncryptorWithMAC encryptor(passPhrase, new HexEncoder); > encryptor.Put((byte *)instr, len); > encryptor.MessageEnd(); > > unsigned int outputLength = encryptor.MaxRetrievable(); > outstr = new char[outputLength+1]; > encryptor.Get((byte *)outstr, outputLength); > outstr[outputLength] = 0; > return outstr; > > } > > int main() > { > //cout << crypt("firstpas", "as"); << "\n"; > cout << EncryptString("test string", "passwd") << "\n"; > return 0;} > > __________________________________________________________ > > And tried to compile it with g++ (without any command options, is > there needed any?) > I use GNU/Linux(Ubuntu 8.10). > I tested with g++ 4.1 and 4.2 and 4.3. but I get a long error output > that says undefined reference to `CryptoPP::.... > > A part of error: > > /tmp/ccZbCSRe.o: In function `EncryptString(char const*, char > const*)': > crypt-test.cpp:(.text+0x138): undefined reference to > `CryptoPP::DefaultEncryptor::DefaultEncryptor(char const*, > CryptoPP::BufferedTransformation*)' > crypt-test.cpp:(.text+0x34d): undefined reference to > `CryptoPP::BufferedTransformation::MaxRetrievable() const' > crypt-test.cpp:(.text+0x37d): undefined reference to > `CryptoPP::BufferedTransformation::Get(unsigned char*, unsigned int)' > /tmp/ccZbCSRe.o: In function `CryptoPP::SecBlock<unsigned char, > CryptoPP::AllocatorWithCleanup<unsigned char, false> >::SecBlock > (unsigned int)': > crypt-test.cpp: > (.text._ZN8CryptoPP8SecBlockIhNS_20AllocatorWithCleanupIhLb0EEEEC1Ej > [CryptoPP::SecBlock<unsigned char, > CryptoPP::AllocatorWithCleanup<unsigned char, false> >::SecBlock > (unsigned int)]+0x25): undefined reference to > `CryptoPP::AllocatorWithCleanup<unsigned char, false>::allocate > (unsigned int, void const*)' > /tmp/ccZbCSRe.o: In function `CryptoPP::SecBlock<unsigned char, > CryptoPP::AllocatorWithCleanup<unsigned char, false> >::~SecBlock()': > > And when I give option "-lcryptopp" to g++, running command: > g++ crypt-test.cpp -lcryptopp > Then I get this error (newly after previous like long error): > > /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libcrypto++.so: > undefined reference to `pthread_key_create' > /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libcrypto++.so: > undefined reference to `pthread_getspecific' > /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libcrypto++.so: > undefined reference to `pthread_key_delete' > /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libcrypto++.so: > undefined reference to `pthread_setspecific' > collect2: ld returned 1 exit status > > Please help me. Thanks You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to cryptopp-users-unsubscribe@.... More information about Crypto++ and this group is available at http://www.cryptopp.com. -~----------~----~----~----~------~----~------~--~--- |
|
|
Re: Compile error with g++ (using DefaultEncryptor)Eugene, Thanks a lot! My problem solved :) On 7/29/09, Eugene Zolenko <zolenkoe@...> wrote: > > You'll need to link to cryptopp and to all its dependencies. > > So make that > -lcryptopp -lpthread > > and other libs it might need (just look up those undefined symbols and > find out which library are they from). > > On Jul 27, 4:38 am, "saeed.gnu" <saeed....@...> wrote: >> Hello >> I will a simple code to encrypt and decrypt a string. I wrote >> following Code: >> >> __________________________________________________________ >> #include <iostream> >> #include <stdlib.h> >> //#include <cryptopp/cryptlib.h> >> #include <cryptopp/default.h> >> #include <cryptopp/hex.h> >> //#include "cryptopp/modes.h" >> //#include "cryptopp/aes.h" >> >> using namespace CryptoPP; >> >> using namespace std; >> >> // encode a string using passPhrase and encode it in hex >> // returns the ciphertext, which should be deleted by caller >> char *EncryptString(const char *instr, const char *passPhrase) { >> unsigned int len=strlen(instr); >> char* outstr; >> >> DefaultEncryptor encryptor(passPhrase, new HexEncoder); >> //DefaultEncryptorWithMAC encryptor(passPhrase, new HexEncoder); >> encryptor.Put((byte *)instr, len); >> encryptor.MessageEnd(); >> >> unsigned int outputLength = encryptor.MaxRetrievable(); >> outstr = new char[outputLength+1]; >> encryptor.Get((byte *)outstr, outputLength); >> outstr[outputLength] = 0; >> return outstr; >> >> } >> >> int main() >> { >> //cout << crypt("firstpas", "as"); << "\n"; >> cout << EncryptString("test string", "passwd") << "\n"; >> return 0;} >> >> __________________________________________________________ >> >> And tried to compile it with g++ (without any command options, is >> there needed any?) >> I use GNU/Linux(Ubuntu 8.10). >> I tested with g++ 4.1 and 4.2 and 4.3. but I get a long error output >> that says undefined reference to `CryptoPP::.... >> >> A part of error: >> >> /tmp/ccZbCSRe.o: In function `EncryptString(char const*, char >> const*)': >> crypt-test.cpp:(.text+0x138): undefined reference to >> `CryptoPP::DefaultEncryptor::DefaultEncryptor(char const*, >> CryptoPP::BufferedTransformation*)' >> crypt-test.cpp:(.text+0x34d): undefined reference to >> `CryptoPP::BufferedTransformation::MaxRetrievable() const' >> crypt-test.cpp:(.text+0x37d): undefined reference to >> `CryptoPP::BufferedTransformation::Get(unsigned char*, unsigned int)' >> /tmp/ccZbCSRe.o: In function `CryptoPP::SecBlock<unsigned char, >> CryptoPP::AllocatorWithCleanup<unsigned char, false> >::SecBlock >> (unsigned int)': >> crypt-test.cpp: >> (.text._ZN8CryptoPP8SecBlockIhNS_20AllocatorWithCleanupIhLb0EEEEC1Ej >> [CryptoPP::SecBlock<unsigned char, >> CryptoPP::AllocatorWithCleanup<unsigned char, false> >::SecBlock >> (unsigned int)]+0x25): undefined reference to >> `CryptoPP::AllocatorWithCleanup<unsigned char, false>::allocate >> (unsigned int, void const*)' >> /tmp/ccZbCSRe.o: In function `CryptoPP::SecBlock<unsigned char, >> CryptoPP::AllocatorWithCleanup<unsigned char, false> >::~SecBlock()': >> >> And when I give option "-lcryptopp" to g++, running command: >> g++ crypt-test.cpp -lcryptopp >> Then I get this error (newly after previous like long error): >> >> /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libcrypto++.so: >> undefined reference to `pthread_key_create' >> /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libcrypto++.so: >> undefined reference to `pthread_getspecific' >> /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libcrypto++.so: >> undefined reference to `pthread_key_delete' >> /usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/libcrypto++.so: >> undefined reference to `pthread_setspecific' >> collect2: ld returned 1 exit status >> >> Please help me. Thanks > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to cryptopp-users-unsubscribe@.... More information about Crypto++ and this group is available at http://www.cryptopp.com. -~----------~----~----~----~------~----~------~--~--- |
| Free embeddable forum powered by Nabble | Forum Help |