es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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!

Tags:  , , ,

Answer

  1. Avatar for 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:

    gcc prvkey.c -o exec -lsecp256k1
    

    Esto indica al compilador que enlace la biblioteca secp256k1 en tiempo de compilación.

Comments are closed.