我需要包含libsecp256k1.a
我遵循以下指示: bitcoin-core/secp256k1 建立.a文件
nm libsecp256k1.a | less
显示.a文件的内容。
我已将库添加到libs下的正确eabi文件夹中
在CMakeLists.txt文件中添加了声明
cmake_minimum_required(VERSION 3.4.1)
set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++17")
set(import-lib-location ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs)
include_directories(include/)
include_directories(secp_include/)
file(GLOB_RECURSE COSIGNER_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/cosigner/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/cosigner/*.c")
file(GLOB_RECURSE COSIGNER_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/cosigner/*.h")
set (COSIGNER_INCLUDE_DIRS "")
foreach (_headerFile ${COSIGNER_HEADERS})
get_filename_component(_dir ${_headerFile} PATH)
list (APPEND COSIGNER_INCLUDE_DIRS ${_dir})
endforeach()
list(REMOVE_DUPLICATES COSIGNER_INCLUDE_DIRS)
add_library(secp256k1 STATIC IMPORTED )
set_target_properties(secp256k1
PROPERTIES IMPORTED_LOCATION
${import-lib-location}/${ANDROID_ABI}/libsecp256k1.a)
add_library (COSIGNERExe SHARED
${COSIGNER_SOURCE}
${COSIGNER_WRAPPER_SOURCE}
)
target_include_directories(COSIGNERExe PRIVATE ${COSIGNER_INCLUDE_DIRS})
add_library(crypto STATIC IMPORTED )
set_target_properties(crypto
PROPERTIES IMPORTED_LOCATION ${import-lib-location}/${ANDROID_ABI}/libcrypto.a)
add_library(ssl STATIC IMPORTED )
set_target_properties(ssl
PROPERTIES IMPORTED_LOCATION
${import-lib-location}/${ANDROID_ABI}/libssl.a)
add_library( # Sets the name of the library.
wrapper
# Sets the library as a shared library.
SHARED
# Provides a relative path to your source file(s).
wrapper.cpp)
target_link_libraries(
COSIGNERExe
secp256k1
ssl
crypto
)
target_link_libraries( # Specifies the target library.
wrapper
ssl
crypto
secp256k1
COSIGNERExe
)
find_library(zlib-lib z)
set_property(TARGET ssl APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${zlib-lib})
仍然出现以下错误:
我想念什么?
编辑: 完整的输出:
Build multiple targets COSIGNERExe_armeabi-v7a mpc_wrapper_armeabi-v7a
ninja: Entering directory `wrapper/.cxx/cmake/debug/armeabi-v7a'
[1/20] Building CXX object CMakeFiles/COSIGNERExe.dir/cosigner/secp256k1_sign_context.cpp.o
[2/20] Building CXX object CMakeFiles/COSIGNERExe.dir/cosigner/logging/logging_t.cpp.o
[3/20] Building CXX object CMakeFiles/COSIGNERExe.dir/cosigner/secret_service.cpp.o
[4/20] Building C object CMakeFiles/COSIGNERExe.dir/cosigner/cosigner.c.o
[5/20] Building C object CMakeFiles/COSIGNERExe.dir/cosigner/crypto/commitments/commitments.c.o
[6/20] Building C object CMakeFiles/COSIGNERExe.dir/cosigner/crypto/MtA/MtA.c.o
[7/20] Building CXX object CMakeFiles/COSIGNERExe.dir/cosigner/blockchain/mpc/hd_derive.cpp.o
[8/20] Building C object CMakeFiles/COSIGNERExe.dir/cosigner/crypto/zero_knowledge_proof/schnorr.c.o
[9/20] Building C object CMakeFiles/COSIGNERExe.dir/cosigner/crypto/zero_knowledge_proof/schnorr2.c.o
[10/20] Building C object CMakeFiles/COSIGNERExe.dir/cosigner/crypto/shamir_secret_sharing/verifiable_secret_sharing.c.o
cosigner/crypto/shamir_secret_sharing/verifiable_secret_sharing.c:157:12: warning: 'BN_is_prime_ex' is deprecated [-Wdeprecated-declarations]
assert(BN_is_prime_ex(bn_prime, 1000, ctx, NULL));
^
include/openssl/bn.h:358:1: note: 'BN_is_prime_ex' has been explicitly marked deprecated here
DEPRECATEDIN_3_0(int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb))
^
include/openssl/macros.h:136:38: note: expanded from macro 'DEPRECATEDIN_3_0'
# define DEPRECATEDIN_3_0(f) DECLARE_DEPRECATED(f)
^
include/openssl/macros.h:34:56: note: expanded from macro 'DECLARE_DEPRECATED'
# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated));
^
1 warning generated.
[11/20] Building C object CMakeFiles/COSIGNERExe.dir/cosigner/crypto/secp256k1_algebra/secp256k1_algebra.c.o
cosigner/crypto/secp256k1_algebra/secp256k1_algebra.c:399:10: warning: 'EC_POINT_get_affine_coordinates_GFp' is deprecated [-Wdeprecated-declarations]
if (!EC_POINT_get_affine_coordinates_GFp(ctx->secp256k1, p_p, X, NULL, ctx->bn_ctx))
^
include/openssl/ec.h:580:1: note: 'EC_POINT_get_affine_coordinates_GFp' has been explicitly marked deprecated here
DEPRECATEDIN_3_0(int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group,
^
include/openssl/macros.h:136:38: note: expanded from macro 'DEPRECATEDIN_3_0'
# define DEPRECATEDIN_3_0(f) DECLARE_DEPRECATED(f)
^
include/openssl/macros.h:34:56: note: expanded from macro 'DECLARE_DEPRECATED'
# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated));
^
1 warning generated.
[12/20] Building C object CMakeFiles/COSIGNERExe.dir/wrapper/x509.c.o
[13/20] Building C object CMakeFiles/COSIGNERExe.dir/cosigner/crypto/paillier/paillier.c.o
[14/20] Building CXX object CMakeFiles/COSIGNERExe.dir/cosigner/utils/guid.cpp.o
In file included from cosigner/utils/guid.cpp:1:
cosigner/utils/guid.h:45:46: warning: static_assert with no message is a C++17 extension [-Wc++17-extensions]
static_assert(sizeof(guid_data) == 16);
^
, ""
1 warning generated.
[15/20] Building CXX object CMakeFiles/COSIGNERExe.dir/wrapper/android_cpp_helper_methods.cpp.o
wrapper/android_cpp_helper_methods.cpp:8:20: warning: unused function 'jstring2string' [-Wunused-function]
static std::string jstring2string(JNIEnv *env, jstring jStr) {
^
1 warning generated.
[16/20] Building CXX object CMakeFiles/wrapper.dir/wrapper.cpp.o
wrapper.cpp:298:66: warning: unused variable 'service' [-Wunused-variable]
cosigner_service::cosigner_service_impl *service = new ccosigner_service::cosigner_service_impl(
^
In file included from wrapper.cpp:8:
wrapper/android_cpp_helper_methods.h:14:20: warning: unused function 'jstring2string' [-Wunused-function]
static std::string jstring2string(JNIEnv *env, jobject self, jstring stringToConvert);
^
2 warnings generated.
[17/20] Building CXX object CMakeFiles/COSIGNERExe.dir/cosigner/cosigner_service_impl.cpp.o
In file included from cosigner/cosigner_service_impl.cpp:11:
cosigner/utils/guid.h:45:46: warning: static_assert with no message is a C++17 extension [-Wc++17-extensions]
static_assert(sizeof(guid_data) == 16);
^
, ""
cosigner/cosigner_service_impl.cpp:227:113: warning: static_assert with no message is a C++17 extension [-Wc++17-extensions]
static_assert(sizeof(common::cosigner::player_commitments) == 2*sizeof(common::cosigner::commitment));
^
, ""
cosigner/cosigner_service_impl.cpp:228:99: warning: static_assert with no message is a C++17 extension [-Wc++17-extensions]
static_assert(sizeof(common::cosigner::commitment) == sizeof(commitments_commitment_t));
^
, ""
cosigner/cosigner_service_impl.cpp:601:99: warning: static_assert with no message is a C++17 extension [-Wc++17-extensions]
static_assert(sizeof(common::cosigner::commitment) == sizeof(commitments_commitment_t));
^
, ""
4 warnings generated.
[18/20] Building CXX object CMakeFiles/COSIGNERExe.dir/cosigner/base_cosigner_service.cpp.o
cosigner/base_cosigner_service.cpp:1294:64: warning: size argument in 'memcmp' call is a comparison [-Wmemsize-comparison]
if (memcmp(U, T, sizeof(secp256k1_point_t) != 0))
~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
cosigner/base_cosigner_service.cpp:1294:25: note: did you mean to compare the result of 'memcmp' instead?
if (memcmp(U, T, sizeof(secp256k1_point_t) != 0))
^ ~
)
cosigner/base_cosigner_service.cpp:1294:38: note: explicitly cast the argument to size_t to silence this warning
if (memcmp(U, T, sizeof(secp256k1_point_t) != 0))
^
(size_t)( )
cosigner/base_cosigner_service.cpp:1893:87: warning: static_assert with no message is a C++17 extension [-Wc++17-extensions]
static_assert(sizeof(secp256k1_point) == sizeof(secp256k1_point_t));
^
, ""
cosigner/base_cosigner_service.cpp:1952:87: warning: static_assert with no message is a C++17 extension [-Wc++17-extensions]
static_assert(sizeof(secp256k1_point) == sizeof(secp256k1_point_t));
^
, ""
3 warnings generated.
[19/20] Linking CXX shared library wrapper/build/intermediates/cmake/debug/obj/armeabi-v7a/libCOSIGNERExe.so
FAILED: wrapper/build/intermediates/cmake/debug/obj/armeabi-v7a/libCOSIGNERExe.so
: && /Users/lena/Library/Android/sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=armv7-none-linux-androideabi27 --gcc-toolchain=/Users/lena/Library/Android/sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/lena/Library/Android/sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -march=armv7-a -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=gnu++11 -Wall -Wno-deprecated-declarations -O0 -fno-limit-debug-info -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -static-libstdc++ -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--exclude-libs,libunwind.a -Wl,--no-undefined -Qunused-arguments -Wl,-z,noexecstack -shared -undefined dynamic_lookup -Wl,-soname,libCOSIGNERExe.so -o wrapper/build/intermediates/cmake/debug/obj/armeabi-v7a/libCOSIGNERExe.so CMakeFiles/COSIGNERExe.dir/cosigner/base_cosigner_service.cpp.o CMakeFiles/COSIGNERExe.dir/cosigner/blockchain/mpc/hd_derive.cpp.o CMakeFiles/COSIGNERExe.dir/cosigner/cosigner_service_impl.cpp.o CMakeFiles/COSIGNERExe.dir/cosigner/logging/logging_t.cpp.o CMakeFiles/COSIGNERExe.dir/cosigner/secp256k1_sign_context.cpp.o CMakeFiles/COSIGNERExe.dir/cosigner/secret_service.cpp.o CMakeFiles/COSIGNERExe.dir/cosigner/utils/guid.cpp.o CMakeFiles/COSIGNERExe.dir/cosigner/cosigner.c.o CMakeFiles/COSIGNERExe.dir/cosigner/crypto/MtA/MtA.c.o CMakeFiles/COSIGNERExe.dir/cosigner/crypto/commitments/commitments.c.o CMakeFiles/COSIGNERExe.dir/cosigner/crypto/paillier/paillier.c.o CMakeFiles/COSIGNERExe.dir/cosigner/crypto/secp256k1_algebra/secp256k1_algebra.c.o CMakeFiles/COSIGNERExe.dir/cosigner/crypto/shamir_secret_sharing/verifiable_secret_sharing.c.o CMakeFiles/COSIGNERExe.dir/cosigner/crypto/zero_knowledge_proof/schnorr.c.o CMakeFiles/COSIGNERExe.dir/cosigner/crypto/zero_knowledge_proof/schnorr2.c.o CMakeFiles/COSIGNERExe.dir/wrapper/android_cpp_helper_methods.cpp.o CMakeFiles/COSIGNERExe.dir/wrapper/x509.c.o ../../../libs/armeabi-v7a/libsecp256k1.a ../../../libs/armeabi-v7a/libssl.a ../../../libs/armeabi-v7a/libcrypto.a /Users/lena/Library/Android/sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi/libz.a -latomic -lm && :
hd_derive.cpp:121: error: undefined reference to 'secp256k1_context_create'
hd_derive.cpp:126: error: undefined reference to 'secp256k1_context_destroy'
hd_derive.cpp:87: error: undefined reference to 'secp256k1_ec_pubkey_parse'
hd_derive.cpp:91: error: undefined reference to 'secp256k1_ec_pubkey_tweak_add'
hd_derive.cpp:95: error: undefined reference to 'secp256k1_ec_pubkey_serialize'
hd_derive.cpp:107: error: undefined reference to 'secp256k1_ec_privkey_tweak_add'
hd_derive.cpp:145: error: undefined reference to 'secp256k1_context_create'
hd_derive.cpp:153: error: undefined reference to 'secp256k1_context_destroy'
hd_derive.cpp:160: error: undefined reference to 'secp256k1_context_destroy'
hd_derive.cpp:183: error: undefined reference to 'secp256k1_context_create'
hd_derive.cpp:191: error: undefined reference to 'secp256k1_context_destroy'
cosigner/secp256k1_sign_context.cpp:16: error: undefined reference to 'secp256k1_context_create'
cosigner/cosigner.c:91: error: undefined reference to 'secp256k1_ec_seckey_verify'
cosigner/cosigner.c:97: error: undefined reference to 'secp256k1_ec_pubkey_create'
cosigner/cosigner.c:102: error: undefined reference to 'secp256k1_ec_pubkey_serialize'
cosigner/cosigner.c:150: error: undefined reference to 'secp256k1_ecdsa_sign'
cosigner/base_cosigner_service.cpp:2095: error: undefined reference to 'secp256k1_ec_seckey_verify'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
> Task :mpcwrapper:externalNativeBuildDebug FAILED
> Task :mpcwrapper:generateDebugRFile
> Task :biometric:generateDebugRFile
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':mpcwrapper:externalNativeBuildDebug'.
> Build command failed.
Error while executing process /Users/lena/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja with arguments {-C wrapper/.cxx/cmake/debug/armeabi-v7a COSIGNERExe mpc_wrapper}
ninja: Entering directory `wrapper/.cxx/cmake/debug/armeabi-v7a'
[1/20] Building CXX object CMakeFiles/COSIGNERExe.dir/cosigner/secp256k1_sign_context.cpp.o
[2/20] Building CXX object CMakeFiles/COSIGNERExe.dir/cosigner/logging/logging_t.cpp.o
[3/20] Building CXX object CMakeFiles/COSIGNERExe.dir/cosigner/secret_service.cpp.o
[4/20] Building C object CMakeFiles/COSIGNERExe.dir/cosigner/cosigner.c.o
[5/20] Building C object CMakeFiles/COSIGNERExe.dir/cosigner/crypto/commitments/commitments.c.o
[6/20] Building C object CMakeFiles/COSIGNERExe.dir/cosigner/crypto/MtA/MtA.c.o
[7/20] Building CXX object CMakeFiles/COSIGNERExe.dir/cosigner/blockchain/mpc/hd_derive.cpp.o
[8/20] Building C object CMakeFiles/COSIGNERExe.dir/cosigner/crypto/zero_knowledge_proof/schnorr.c.o
[9/20] Building C object CMakeFiles/COSIGNERExe.dir/cosigner/crypto/zero_knowledge_proof/schnorr2.c.o
[10/20] Building C object CMakeFiles/COSIGNERExe.dir/cosigner/crypto/shamir_secret_sharing/verifiable_secret_sharing.c.o
cosigner/crypto/shamir_secret_sharing/verifiable_secret_sharing.c:157:12: warning: 'BN_is_prime_ex' is deprecated [-Wdeprecated-declarations]
assert(BN_is_prime_ex(bn_prime, 1000, ctx, NULL));
^
include/openssl/bn.h:358:1: note: 'BN_is_prime_ex' has been explicitly marked deprecated here
DEPRECATEDIN_3_0(int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb))
^
include/openssl/macros.h:136:38: note: expanded from macro 'DEPRECATEDIN_3_0'
# define DEPRECATEDIN_3_0(f) DECLARE_DEPRECATED(f)
^
include/openssl/macros.h:34:56: note: expanded from macro 'DECLARE_DEPRECATED'
# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated));
^
1 warning generated.
[11/20] Building C object CMakeFiles/COSIGNERExe.dir/cosigner/crypto/secp256k1_algebra/secp256k1_algebra.c.o
cosigner/crypto/secp256k1_algebra/secp256k1_algebra.c:399:10: warning: 'EC_POINT_get_affine_coordinates_GFp' is deprecated [-Wdeprecated-declarations]
if (!EC_POINT_get_affine_coordinates_GFp(ctx->secp256k1, p_p, X, NULL, ctx->bn_ctx))
^
include/openssl/ec.h:580:1: note: 'EC_POINT_get_affine_coordinates_GFp' has been explicitly marked deprecated here
DEPRECATEDIN_3_0(int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group,
^
include/openssl/macros.h:136:38: note: expanded from macro 'DEPRECATEDIN_3_0'
# define DEPRECATEDIN_3_0(f) DECLARE_DEPRECATED(f)
^
include/openssl/macros.h:34:56: note: expanded from macro 'DECLARE_DEPRECATED'
# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated));
^
1 warning generated.
[12/20] Building C object CMakeFiles/COSIGNERExe.dir/wrapper/x509.c.o
[13/20] Building C object CMakeFiles/COSIGNERExe.dir/cosigner/crypto/paillier/paillier.c.o
[14/20] Building CXX object CMakeFiles/COSIGNERExe.dir/cosigner/utils/guid.cpp.o
In file included from cosigner/utils/guid.cpp:1:
cosigner/utils/guid.h:45:46: warning: static_assert with no message is a C++17 extension [-Wc++17-extensions]
static_assert(sizeof(guid_data) == 16);
^
, ""
1 warning generated.
[15/20] Building CXX object CMakeFiles/COSIGNERExe.dir/wrapper/android_cpp_helper_methods.cpp.o
wrapper/android_cpp_helper_methods.cpp:8:20: warning: unused function 'jstring2string' [-Wunused-function]
static std::string jstring2string(JNIEnv *env, jstring jStr) {
^
1 warning generated.
[16/20] Building CXX object CMakeFiles/wrapper.dir/wrapper.cpp.o
wrapper.cpp:298:66: warning: unused variable 'service' [-Wunused-variable]
cosigner_service::cosigner_service_impl *service = new cosigner_service::cosigner_service_impl(
^
In file included from wrapper.cpp:8:
wrapper/android_cpp_helper_methods.h:14:20: warning: unused function 'jstring2string' [-Wunused-function]
static std::string jstring2string(JNIEnv *env, jobject self, jstring stringToConvert);
^
2 warnings generated.
[17/20] Building CXX object CMakeFiles/COSIGNERExe.dir/cosigner/cosigner_service_impl.cpp.o
In file included from cosigner/cosigner_service_impl.cpp:11:
cosigner/utils/guid.h:45:46: warning: static_assert with no message is a C++17 extension [-Wc++17-extensions]
static_assert(sizeof(guid_data) == 16);
^
, ""
cosigner/cosigner_service_impl.cpp:227:113: warning: static_assert with no message is a C++17 extension [-Wc++17-extensions]
static_assert(sizeof(common::cosigner::player_commitments) == 2*sizeof(common::cosigner::commitment));
^
, ""
cosigner/cosigner_service_impl.cpp:228:99: warning: static_assert with no message is a C++17 extension [-Wc++17-extensions]
static_assert(sizeof(common::cosigner::commitment) == sizeof(commitments_commitment_t));
^
, ""
cosigner/cosigner_service_impl.cpp:601:99: warning: static_assert with no message is a C++17 extension [-Wc++17-extensions]
static_assert(sizeof(common::cosigner::commitment) == sizeof(commitments_commitment_t));
^
, ""
4 warnings generated.
[18/20] Building CXX object CMakeFiles/COSIGNERExe.dir/cosigner/base_cosigner_service.cpp.o
cosigner/base_cosigner_service.cpp:1294:64: warning: size argument in 'memcmp' call is a comparison [-Wmemsize-comparison]
if (memcmp(U, T, sizeof(secp256k1_point_t) != 0))
~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
cosigner/base_cosigner_service.cpp:1294:25: note: did you mean to compare the result of 'memcmp' instead?
if (memcmp(U, T, sizeof(secp256k1_point_t) != 0))
^ ~
)
cosigner/base_cosigner_service.cpp:1294:38: note: explicitly cast the argument to size_t to silence this warning
if (memcmp(U, T, sizeof(secp256k1_point_t) != 0))
^
(size_t)( )
cosigner/base_cosigner_service.cpp:1893:87: warning: static_assert with no message is a C++17 extension [-Wc++17-extensions]
static_assert(sizeof(secp256k1_point) == sizeof(secp256k1_point_t));
^
, ""
cosigner/base_cosigner_service.cpp:1952:87: warning: static_assert with no message is a C++17 extension [-Wc++17-extensions]
static_assert(sizeof(secp256k1_point) == sizeof(secp256k1_point_t));
^
, ""
3 warnings generated.
[19/20] Linking CXX shared library wrapper/build/intermediates/cmake/debug/obj/armeabi-v7a/libCOSIGNERExe.so
FAILED: wrapper/build/intermediates/cmake/debug/obj/armeabi-v7a/libCOSIGNERExe.so
: && /Users/lena/Library/Android/sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=armv7-none-linux-androideabi27 --gcc-toolchain=/Users/lena/Library/Android/sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/lena/Library/Android/sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -march=armv7-a -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=gnu++11 -Wall -Wno-deprecated-declarations -O0 -fno-limit-debug-info -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -static-libstdc++ -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--exclude-libs,libunwind.a -Wl,--no-undefined -Qunused-arguments -Wl,-z,noexecstack -shared -undefined dynamic_lookup -Wl,-soname,libCOSIGNERExe.so -o wrapper/build/intermediates/cmake/debug/obj/armeabi-v7a/libCOSIGNERExe.so CMakeFiles/COSIGNERExe.dir/cosigner/base_cosigner_service.cpp.o CMakeFiles/COSIGNERExe.dir/cosigner/blockchain/mpc/hd_derive.cpp.o CMakeFiles/COSIGNERExe.dir/cosigner/cosigner_service_impl.cpp.o CMakeFiles/COSIGNERExe.dir/cosigner/logging/logging_t.cpp.o CMakeFiles/COSIGNERExe.dir/cosigner/secp256k1_sign_context.cpp.o CMakeFiles/COSIGNERExe.dir/cosigner/secret_service.cpp.o CMakeFiles/COSIGNERExe.dir/cosigner/utils/guid.cpp.o CMakeFiles/COSIGNERExe.dir/cosigner/cosigner.c.o CMakeFiles/COSIGNERExe.dir/cosigner/crypto/MtA/MtA.c.o CMakeFiles/COSIGNERExe.dir/cosigner/crypto/commitments/commitments.c.o CMakeFiles/COSIGNERExe.dir/cosigner/crypto/paillier/paillier.c.o CMakeFiles/COSIGNERExe.dir/cosigner/crypto/secp256k1_algebra/secp256k1_algebra.c.o CMakeFiles/COSIGNERExe.dir/cosigner/crypto/shamir_secret_sharing/verifiable_secret_sharing.c.o CMakeFiles/COSIGNERExe.dir/cosigner/crypto/zero_knowledge_proof/schnorr.c.o CMakeFiles/COSIGNERExe.dir/cosigner/crypto/zero_knowledge_proof/schnorr2.c.o CMakeFiles/COSIGNERExe.dir/wrapper/android_cpp_helper_methods.cpp.o CMakeFiles/COSIGNERExe.dir/wrapper/x509.c.o ../../../libs/armeabi-v7a/libsecp256k1.a ../../../libs/armeabi-v7a/libssl.a ../../../libs/armeabi-v7a/libcrypto.a /Users/lena/Library/Android/sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/lib/arm-linux-androideabi/libz.a -latomic -lm && :
hd_derive.cpp:121: error: undefined reference to 'secp256k1_context_create'
hd_derive.cpp:126: error: undefined reference to 'secp256k1_context_destroy'
hd_derive.cpp:87: error: undefined reference to 'secp256k1_ec_pubkey_parse'
hd_derive.cpp:91: error: undefined reference to 'secp256k1_ec_pubkey_tweak_add'
hd_derive.cpp:95: error: undefined reference to 'secp256k1_ec_pubkey_serialize'
hd_derive.cpp:107: error: undefined reference to 'secp256k1_ec_privkey_tweak_add'
hd_derive.cpp:145: error: undefined reference to 'secp256k1_context_create'
hd_derive.cpp:153: error: undefined reference to 'secp256k1_context_destroy'
hd_derive.cpp:160: error: undefined reference to 'secp256k1_context_destroy'
hd_derive.cpp:183: error: undefined reference to 'secp256k1_context_create'
hd_derive.cpp:191: error: undefined reference to 'secp256k1_context_destroy'
cosigner/secp256k1_sign_context.cpp:16: error: undefined reference to 'secp256k1_context_create'
cosigner/cosigner.c:91: error: undefined reference to 'secp256k1_ec_seckey_verify'
cosigner/cosigner.c:97: error: undefined reference to 'secp256k1_ec_pubkey_create'
cosigner/cosigner.c:102: error: undefined reference to 'secp256k1_ec_pubkey_serialize'
cosigner/cosigner.c:150: error: undefined reference to 'secp256k1_ecdsa_sign'
cosigner/base_cosigner_service.cpp:2095: error: undefined reference to 'secp256k1_ec_seckey_verify'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.