в общем имеется арч,libsecp256k1, libgmp, Boost1.57, Openssl1.0.1p, Berkeley DB 4.8, QT5
необходимо собрать сие чудо
при компиляции выдает ошибку (указывает на ->):
src/tests.c: В функции «test_ecdsa_der_parse»:
src/tests.c:3561:52: ошибка: dereferencing pointer to incomplete type «ECDSA_SIG {aka struct ECDSA_SIG_st}»
valid_openssl = !BN_is_negative(sig_openssl->r) && !BN_is_negative(sig_openssl->s) && BN_num_bits(sig_openssl->r) > 0 && BN_num_bits(sig_openssl->r) <= 256 && BN_num_bits(sig_openssl->s) > 0 && BN_num_bits(sig_openssl->s) <= 256;
ошибка в файле src/secp256k1/src/tests.c
полный лог с русской локалюю
вроде все версии пакетов как в описании к сборке, редми обновлялся 3 месяца назад, так чо считаю его актуальным. Но чо не нравится в этих исходниках? вроде же верно там ссылка на класс делается, или я чото упустил в си? изучал его уже давно, но указание на метод или параметр именно через "->" делается... или там точка должна быть?
п.с. в хедерах openssl вроде все так же указано
typedef struct ECDSA_SIG_st {
BIGNUM *r;
BIGNUM *s;
} ECDSA_SIG;
/** Allocates and initialize a ECDSA_SIG structure
* \return pointer to a ECDSA_SIG structure or NULL if an error occurred
*/
ECDSA_SIG *ECDSA_SIG_new(void);
/** frees a ECDSA_SIG structure
* \param sig pointer to the ECDSA_SIG structure
*/
void ECDSA_SIG_free(ECDSA_SIG *sig);
/** DER encode content of ECDSA_SIG object (note: this function modifies *pp
* (*pp += length of the DER encoded signature)).
* \param sig pointer to the ECDSA_SIG object
* \param pp pointer to a unsigned char pointer for the output or NULL
* \return the length of the DER encoded ECDSA_SIG object or 0