Error al compilar con la biblioteca secp256k1.
Así que estaba siguiendo este tutorial: https://nickfarrow.com/Cryptography-in-Bitcoin-with-C/ Instalé libsecp256k1
desde https://www.howtoinstall.me/ubuntu/18-04/libsecp256k1-dev/ pero al compilar mi programa:
#include <secp256k1.h>
#include <stdio.h>
static secp256k1_context *ctx = NULL;
int main()
{
ctx = secp256k1_context_create(
SECP256K1_CONTEXT_SIGN | SECP256K1_CONTEXT_VERIFY);
/* Declarar la variable privada como un unsigned char de 32 bytes */
unsigned char seckey[32];
/* Cargar la clave privada (seckey) desde los bytes aleatorios */
FILE *frand = fopen("/dev/urandom", "r");
/* Leer 32 bytes de frand */
fread(seckey, 32, 1, frand);
/* Cerrar el archivo */
fclose(frand);
/* Recorrer e imprimir cada byte de la clave privada */
printf("Clave Privada: ");
for (int i = 0; i < 32; i++)
{
printf("%02X", seckey[i]);
}
printf("\n");
}
Obtengo:
josh@pc:~/Code$ gcc prvkey.c -o exec
/tmp/cc5OVPMJ.o: En la función `main':
prvkey.c:(.text+0x1d): referencia a `secp256k1_context_create' sin definir
collect2: error: ld devolvió el estado de salida 1
¡Gracias de antemano!
davy.ai
El mensaje de error “undefined reference to `secp256k1_context_create'” sugiere que el enlazador (ld) no puede encontrar la biblioteca que contiene las funciones secp256k1.
Para solucionar este problema, deberá enlazar con libsecp256k1 utilizando la opción -l al compilar:
Esto indica al compilador que enlace la biblioteca secp256k1 en tiempo de compilación.