gmp.h:2097: undefined reference to `__gmpn_sub_n'
betachen opened this issue · comments
Link error for mvsd
on some OS:
/usr/local/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o): In function
secp256k1_num_mod_inverse': /home/travis/build/mvs-org/metaverse/build-mvs-dependencies/secp256k1/src/num_gmp_impl.h:128: undefined reference to
__gmpn_gcdext'
/usr/local/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o): In function__gmpn_sub': /usr/include/x86_64-linux-gnu/gmp.h:2097: undefined reference to
__gmpn_sub_n'
/usr/local/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o): In functionsecp256k1_num_set_bin': /home/travis/build/mvs-org/metaverse/build-mvs-dependencies/secp256k1/src/num_gmp_impl.h:49: undefined reference to
__gmpn_set_str'
/home/travis/build/mvs-org/metaverse/build-mvs-dependencies/secp256k1/src/num_gmp_impl.h:49: undefined reference to__gmpn_set_str' /usr/local/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o): In function
secp256k1_num_get_bin':
/home/travis/build/mvs-org/metaverse/build-mvs-dependencies/secp256k1/src/num_gmp_impl.h:34: undefined reference to__gmpn_get_str' /usr/local/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o): In function
secp256k1_num_set_bin':
/home/travis/build/mvs-org/metaverse/build-mvs-dependencies/secp256k1/src/num_gmp_impl.h:49: undefined reference to__gmpn_set_str' /home/travis/build/mvs-org/metaverse/build-mvs-dependencies/secp256k1/src/num_gmp_impl.h:49: undefined reference to
__gmpn_set_str'
/usr/local/lib/libsecp256k1.a(libsecp256k1_la-secp256k1.o): In functionsecp256k1_num_get_bin': /home/travis/build/mvs-org/metaverse/build-mvs-dependencies/secp256k1/src/num_gmp_impl.h:34: undefined reference to
__gmpn_get_str'
collect2: error: ld returned 1 exit status
make[2]: *** [bin/mvsd] Error 1
make[2]: Leaving directory `/home/travis/build/mvs-org/metaverse/build'
make[1]: *** [src/mvsd/CMakeFiles/mvsd.dir/all] Error 2
make[1]: Leaving directory `/home/travis/build/mvs-org/metaverse/build'
make: *** [all] Error 2
Refers to bitcoin issues:
bitcoin-core/secp256k1#111
bitcoin-core/secp256k1#430
how to resolves:
secp256k1
./configure --with-bignum=no
Ran into this same issue on Ubuntu 18.04LTS. Fix is adding -lgmp
to the end of the command in src/mvsd/CMakeFiles/mvsd.dir/link.txt
and src/mvs-cli/CMakeFiles/mvs-cli.dir/link.txt
(i.e. it should appear as the very last thing, as if it is before libsec256k1 linking will still fail)
@robby-dermody Thank you.
I have the exact same error when compiling a small code which includes bitcoin.hpp
with g++ -o addr 69_addr2.cpp $(pkg-config --cflags --libs libbitcoin)
. On my Raspberry, I have /usr/include/arm-linux-gnueabihf/gmp.h
. Since I am an absolut noob I wanted to ask where I need to put -lgmp
in my case?