#1 Le 12/04/2020, à 22:38
- hamido10002000
Probleme au niveau de compilation ?? [résolut]
Salut a tous ,
je viens de compiler un code source sur un livre "Mastering Bitcoin"
#include <bitcoin/bitcoin.hpp>
int main()
{
// Private secret key string as base16
bc::ec_secret decoded;
bc::decode_base16(decoded,"038109007313a5807b2eccc082c8c3fbb988a973cacf1a7df9ce725c31b14776");
bc::wallet::ec_private secret(decoded, bc::wallet::ec_private::mainnet_p2kh);
// Get public key.
bc::wallet::ec_public public_key(secret);
std::cout << "Public key: " << public_key.encoded() << std::endl;
// Create Bitcoin address.
// Normally you can use:
// bc::wallet::payment_address payaddr =
// public_key.to_payment_address(
// bc::wallet::ec_public::mainnet_p2kh);
// const std::string address = payaddr.encoded();
// Compute hash of public key for P2PKH address.
bc::data_chunk public_key_data;
public_key.to_data(public_key_data);
const auto hash = bc::bitcoin_short_hash(public_key_data);
bc::data_chunk unencoded_address;
// Reserve 25 bytes
// [ version:1 ]
// [ hash:20 ]
// [ checksum:4 ]
unencoded_address.reserve(25);
// Version byte, 0 is normal BTC address (P2PKH).
unencoded_address.push_back(0);
// Hash data
bc::extend_data(unencoded_address, hash);
// Checksum is computed by hashing data, and adding 4 bytes from hash.
bc::append_checksum(unencoded_address);
// Finally we must encode the result in Bitcoin's base58 encoding.
assert(unencoded_address.size() == 25);
const std::string address = bc::encode_base58(unencoded_address);
std::cout << "Address: " << address << std::endl;
return 0;
}
et j'ai compilé ce code
user@user-Inspiron-N5110:~$ g++ -o addr addr.cpp -std=c++11 -lgmp $(pkg-config --cflags --libs libbitcoin)
/home/user/myprefix/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o) : Dans la fonction « secp256k1_num_mod_inverse » :
/home/user/build-libbitcoin/secp256k1/src/num_gmp_impl.h:128 : référence indéfinie vers « __gmpn_gcdext »
/home/user/myprefix/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o) : Dans la fonction « __gmpn_sub » :
/usr/include/x86_64-linux-gnu/gmp.h:2190 : référence indéfinie vers « __gmpn_sub_n »
/home/user/myprefix/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o) : Dans la fonction « secp256k1_num_set_bin » :
/home/user/build-libbitcoin/secp256k1/src/num_gmp_impl.h:49 : référence indéfinie vers « __gmpn_set_str »
/home/user/build-libbitcoin/secp256k1/src/num_gmp_impl.h:49 : référence indéfinie vers « __gmpn_set_str »
/home/user/myprefix/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o) : Dans la fonction « secp256k1_num_get_bin » :
/home/user/build-libbitcoin/secp256k1/src/num_gmp_impl.h:34 : référence indéfinie vers « __gmpn_get_str »
/home/user/myprefix/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o) : Dans la fonction « secp256k1_num_set_bin » :
/home/user/build-libbitcoin/secp256k1/src/num_gmp_impl.h:49 : référence indéfinie vers « __gmpn_set_str »
/home/user/build-libbitcoin/secp256k1/src/num_gmp_impl.h:49 : référence indéfinie vers « __gmpn_set_str »
/home/user/myprefix/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o) : Dans la fonction « secp256k1_num_get_bin » :
/home/user/build-libbitcoin/secp256k1/src/num_gmp_impl.h:34 : référence indéfinie vers « __gmpn_get_str »
collect2: error: ld returned 1 exit status
Quelqu'un a une aidé pour régler ce probleme
Dernière modification par hamido10002000 (Le 13/04/2020, à 18:09)
Hors ligne
#2 Le 12/04/2020, à 23:06
- noje
Re : Probleme au niveau de compilation ?? [résolut]
Bonjour,
Il vous manque peut-être cette librairie de développement libgmp3-dev à vérifier.
sudo apt-get install libgmp3-dev
Merci de redire si ça solutionne ou non ?
- LTS 18.04 & 22.04 - jwm - cwm - zsh
Les seules vraies erreurs sont celles que nous commettons à répétition.
Les autres sont des occasions d'apprentissage. (Dalaï Lama)
Hors ligne
#3 Le 12/04/2020, à 23:15
- hamido10002000
Re : Probleme au niveau de compilation ?? [résolut]
Bonjour,
Il vous manque peut-être cette librairie de développement libgmp3-dev à vérifier.sudo apt-get install libgmp3-dev
Merci de redire si ça solutionne ou non ?
Merci pour la réponse , j'ai ré-exécuté la commande kibgmp3-dev mais malheureusement toujours les même erreurs
Dernière modification par hamido10002000 (Le 12/04/2020, à 23:18)
Hors ligne
#4 Le 13/04/2020, à 01:02
- noje
Re : Probleme au niveau de compilation ?? [résolut]
Je pense qu’il vous manques le fichier gmp.h, pouvez vous regarder s’il est bien installé avec le paquet sus-mentionné.
Cette erreur est récurrentes pour ce soucis de compilation donc le plus fréquent.
ls /usr/include/gmp.h
locate gmp.h
Ça donne quoi ?
Dernière modification par noje (Le 13/04/2020, à 01:02)
- LTS 18.04 & 22.04 - jwm - cwm - zsh
Les seules vraies erreurs sont celles que nous commettons à répétition.
Les autres sont des occasions d'apprentissage. (Dalaï Lama)
Hors ligne
#5 Le 13/04/2020, à 05:45
- hamido10002000
Re : Probleme au niveau de compilation ?? [résolut]
Je pense qu’il vous manques le fichier gmp.h, pouvez vous regarder s’il est bien installé avec le paquet sus-mentionné.
Cette erreur est récurrentes pour ce soucis de compilation donc le plus fréquent.ls /usr/include/gmp.h
locate gmp.h
Ça donne quoi ?
user@user-Inspiron-N5110:~$ ls /usr/include/gmp.h
ls: impossible d'accéder à '/usr/include/gmp.h': Aucun fichier ou dossier de ce type
user@user-Inspiron-N5110:~$ locate gmp.h
/home/user/.local/share/Trash/files/myprefix/include/boost/multiprecision/gmp.hpp
/home/user/bitcoin/src/secp256k1/src/num_gmp.h
/usr/include/boost/multiprecision/gmp.hpp
/usr/include/linux/igmp.h
/usr/include/netinet/igmp.h
/usr/include/x86_64-linux-gnu/gmp.h
/usr/src/linux-headers-4.15.0-29/include/linux/igmp.h
/usr/src/linux-headers-4.15.0-29/include/uapi/linux/igmp.h
user@user-Inspiron-N5110:~$
Hors ligne
#6 Le 13/04/2020, à 08:34
- noje
Re : Probleme au niveau de compilation ?? [résolut]
Ok space tente d’ajouter le flag “ -lgmpxx ” avant -lgmp pour voir.
Dernière modification par noje (Le 13/04/2020, à 08:34)
- LTS 18.04 & 22.04 - jwm - cwm - zsh
Les seules vraies erreurs sont celles que nous commettons à répétition.
Les autres sont des occasions d'apprentissage. (Dalaï Lama)
Hors ligne
#7 Le 13/04/2020, à 09:46
- hamido10002000
Re : Probleme au niveau de compilation ?? [résolut]
Ok space tente d’ajouter le flag “ -lgmpxx ” avant -lgmp pour voir.
user@user-Inspiron-N5110:~$ g++ -o addr addr.cpp -std=c++11 -lgmpxx -lgmp $(pkg-config --cflags --libs libbitcoin)
/home/user/myprefix/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o) : Dans la fonction « secp256k1_num_mod_inverse » :
/home/user/build-libbitcoin/secp256k1/src/num_gmp_impl.h:128 : référence indéfinie vers « __gmpn_gcdext »
/home/user/myprefix/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o) : Dans la fonction « __gmpn_sub » :
/usr/include/x86_64-linux-gnu/gmp.h:2190 : référence indéfinie vers « __gmpn_sub_n »
/home/user/myprefix/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o) : Dans la fonction « secp256k1_num_set_bin » :
/home/user/build-libbitcoin/secp256k1/src/num_gmp_impl.h:49 : référence indéfinie vers « __gmpn_set_str »
/home/user/build-libbitcoin/secp256k1/src/num_gmp_impl.h:49 : référence indéfinie vers « __gmpn_set_str »
/home/user/myprefix/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o) : Dans la fonction « secp256k1_num_get_bin » :
/home/user/build-libbitcoin/secp256k1/src/num_gmp_impl.h:34 : référence indéfinie vers « __gmpn_get_str »
/home/user/myprefix/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o) : Dans la fonction « secp256k1_num_set_bin » :
/home/user/build-libbitcoin/secp256k1/src/num_gmp_impl.h:49 : référence indéfinie vers « __gmpn_set_str »
/home/user/build-libbitcoin/secp256k1/src/num_gmp_impl.h:49 : référence indéfinie vers « __gmpn_set_str »
/home/user/myprefix/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o) : Dans la fonction « secp256k1_num_get_bin » :
/home/user/build-libbitcoin/secp256k1/src/num_gmp_impl.h:34 : référence indéfinie vers « __gmpn_get_str »
collect2: error: ld returned 1 exit status
user@user-Inspiron-N5110:~$
Hors ligne
#8 Le 13/04/2020, à 09:58
- noje
Re : Probleme au niveau de compilation ?? [résolut]
Bon j'arrête ici et espère que tu vas avoir une réponse sur Stack échange où j'ai vu que tu avais mis un message, bon courage....
- LTS 18.04 & 22.04 - jwm - cwm - zsh
Les seules vraies erreurs sont celles que nous commettons à répétition.
Les autres sont des occasions d'apprentissage. (Dalaï Lama)
Hors ligne
#9 Le 13/04/2020, à 10:14
- hamido10002000
Re : Probleme au niveau de compilation ?? [résolut]
Bon j'arrête ici et espère que tu vas avoir une réponse sur Stack échange où j'ai vu que tu avais mis un message, bon courage....
Merci noje pour tes efforts.
Hors ligne
#10 Le 13/04/2020, à 12:24
- noje
Re : Probleme au niveau de compilation ?? [résolut]
Ben de rien ça n’apporte rien de plus pour toi, en espérant que tu trouves une réponse ailleurs ou trouves une solution toi même.
Si une solution est en place n'oublie pas de passer le post en résolu ça fait plaisir à nos admins...
- LTS 18.04 & 22.04 - jwm - cwm - zsh
Les seules vraies erreurs sont celles que nous commettons à répétition.
Les autres sont des occasions d'apprentissage. (Dalaï Lama)
Hors ligne
#11 Le 13/04/2020, à 18:08
- hamido10002000
Re : Probleme au niveau de compilation ?? [résolut]
Et voila j'ai trouvé la solution, l'emplacement de l'option -lgmp.
g++ -o addr addr.cpp -std=c++11 $(pkg-config --cflags --libs libbitcoin) -lgmp
Merci noje
Hors ligne