2010-06-03 6 views
0

J'essaye de construire TorTunnel sur mon mac. J'ai installé avec succès la bibliothèque Boost et ses fichiers de développement. TorTunnel nécessite également OpenSSL et ses fichiers de développement. Je les ai installés dans /usr/lib/libssl.dylib et/usr/include/openssl /.ld: symbole (s) introuvable avec OpenSSL (libssl)

Quand je lance la commande make c'est l'erreur que je reçois:

 
g++ -ggdb -g -O2 -lssl -lboost_system-xgcc42-mt-1_38 -o torproxy TorProxy.o HybridEncryption.o Connection.o Cell.o Directory.o ServerListing.o Util.o Circuit.o CellEncrypter.o RelayCellDispatcher.o CellConsumer.o ProxyShuffler.o CreateCell.o CreatedCell.o TorTunnel.o SocksConnection.o Network.o 
Undefined symbols: 
    "_BN_hex2bn", referenced from: 
     Circuit::initializeDhParameters()  in Circuit.o 
    "_BN_free", referenced from: 
     Circuit::~Circuit()in Circuit.o 
     Circuit::~Circuit()in Circuit.o 
     CreatedCell::getKeyMaterial(unsigned char**, unsigned char**)in CreatedCell.o 
    "_DH_generate_key", referenced from: 
     Circuit::initializeDhParameters()  in Circuit.o 
    "_PEM_read_bio_RSAPublicKey", referenced from: 
     ServerListing::getOnionKey()  in ServerListing.o 
    "_BIO_s_mem", referenced from: 
     Connection::initializeSSL()  in Connection.o 
     Connection::initializeSSL()  in Connection.o 
    "_DH_free", referenced from: 
     Circuit::~Circuit()in Circuit.o 
    "_BIO_ctrl_pending", referenced from: 
     Connection::writeFromBuffer(boost::function)in Connection.o 
    "_RSA_size", referenced from: 
     HybridEncryption::encryptInSingleChunk(unsigned char*, int, unsigned char**, int*, rsa_st*)in HybridEncryption.o 
     HybridEncryption::encryptInHybridChunk(unsigned char*, int, unsigned char**, int*, rsa_st*)in HybridEncryption.o 
     HybridEncryption::encrypt(unsigned char*, int, unsigned char**, int*, rsa_st*)in HybridEncryption.o 
    "_RSA_public_encrypt", referenced from: 
     HybridEncryption::encryptInSingleChunk(unsigned char*, int, unsigned char**, int*, rsa_st*)in HybridEncryption.o 
     HybridEncryption::encryptInHybridChunk(unsigned char*, int, unsigned char**, int*, rsa_st*)in HybridEncryption.o 
    "_BN_num_bits", referenced from: 
     CreateCell::CreateCell(unsigned short, dh_st*, rsa_st*)in CreateCell.o 
     CreatedCell::getKeyMaterial(unsigned char**, unsigned char**)in CreatedCell.o 
     CreatedCell::getKeyMaterial(unsigned char**, unsigned char**)in CreatedCell.o 
     CreatedCell::isValid()  in CreatedCell.o 
    "_SHA1", referenced from: 
     CellEncrypter::expandKeyMaterial(unsigned char*, int, unsigned char*, int)in CellEncrypter.o 
    "_BN_bn2bin", referenced from: 
     CreateCell::CreateCell(unsigned short, dh_st*, rsa_st*)in CreateCell.o 
    "_BN_bin2bn", referenced from: 
     CreatedCell::getKeyMaterial(unsigned char**, unsigned char**)in CreatedCell.o 
    "_DH_compute_key", referenced from: 
     CreatedCell::getKeyMaterial(unsigned char**, unsigned char**)in CreatedCell.o 
    "_BIO_new", referenced from: 
     Connection::initializeSSL()  in Connection.o 
     Connection::initializeSSL()  in Connection.o 
    "_BIO_new_mem_buf", referenced from: 
     ServerListing::getOnionKey()  in ServerListing.o 
    "_AES_ctr128_encrypt", referenced from: 
     HybridEncryption::AES_encrypt(unsigned char*, int, unsigned char*, unsigned char*, int)in HybridEncryption.o 
     CellEncrypter::aesOperate(Cell&, aes_key_st*, unsigned char*, unsigned char*, unsigned int*)in CellEncrypter.o 
    "_BIO_read", referenced from: 
     Connection::writeFromBuffer(boost::function)in Connection.o 
    "_SHA1_Update", referenced from: 
     CellEncrypter::calculateDigest(SHAstate_st*, RelayCell&, unsigned char*)in CellEncrypter.o 
     CellEncrypter::initKeyMaterial(unsigned char*)in CellEncrypter.o 
     CellEncrypter::initKeyMaterial(unsigned char*)in CellEncrypter.o 
    "_SHA1_Final", referenced from: 
     CellEncrypter::calculateDigest(SHAstate_st*, RelayCell&, unsigned char*)in CellEncrypter.o 
    "_DH_size", referenced from: 
     CreatedCell::getKeyMaterial(unsigned char**, unsigned char**)in CreatedCell.o 
    "_DH_new", referenced from: 
     Circuit::initializeDhParameters()  in Circuit.o 
    "_BIO_write", referenced from: 
     Connection::readIntoBufferComplete(boost::function, boost::system::error_code const&, unsigned long)in Connection.o 
    "_RSA_free", referenced from: 
     Circuit::~Circuit()in Circuit.o 
    "_BN_dup", referenced from: 
     Circuit::initializeDhParameters()  in Circuit.o 
     Circuit::initializeDhParameters()  in Circuit.o 
    "_BN_new", referenced from: 
     Circuit::initializeDhParameters()  in Circuit.o 
     Circuit::initializeDhParameters()  in Circuit.o 
    "_SHA1_Init", referenced from: 
     CellEncrypter::CellEncrypter()in CellEncrypter.o 
     CellEncrypter::CellEncrypter()in CellEncrypter.o 
    "_RAND_bytes", referenced from: 
     HybridEncryption::encryptInHybridChunk(unsigned char*, int, unsigned char**, int*, rsa_st*)in HybridEncryption.o 
     Util::getRandomId()  in Util.o 
    "_AES_set_encrypt_key", referenced from: 
     HybridEncryption::AES_encrypt(unsigned char*, int, unsigned char*, unsigned char*, int)in HybridEncryption.o 
     CellEncrypter::initKeyMaterial(unsigned char*)in CellEncrypter.o 
     CellEncrypter::initKeyMaterial(unsigned char*)in CellEncrypter.o 
    "_BN_set_word", referenced from: 
     Circuit::initializeDhParameters()  in Circuit.o 
    "_RSA_new", referenced from: 
     ServerListing::getOnionKey()  in ServerListing.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 
make: *** [torproxy] Error 1 

Toute idée comment je pourrais résoudre ce problème?

Répondre

4

Vous avez également besoin de libcrypto.

Changez votre ligne de lien vers:

g++ -ggdb -g -O2 -lssl -lcrypt ... as before ... 
1

au moins sur des symboles manquants ne fait pas partie de libssl mais une partie de libcrypto:

diciu:~ diciu$ nm /usr/lib/libcrypto.dylib | grep PEM_read_bio_RSAPublicKey 
00031d20 T _PEM_read_bio_RSAPublicKey 

Ajouter « -lcrypto » à votre ligne de compilation .

1

Si libcrypto est déjà installé dans/opt/local/lib, remplacez l'indicateur -lcrypt par -lcrypto.

g++ -ggdb -g -O2 -L/opt/local/lib -L/usr/lib -lssl -lcrypto -lboost_system-mt 
Questions connexes