gcc не компилируется с openssl включает - PullRequest
1 голос
/ 02 ноября 2019

У меня возникли проблемы при попытке скомпилировать некоторый код, включающий openssl, с помощью следующей команды gcc

gcc -Wall -O2 -std=c89 -pedantic -static -isystemC:\Users\username\Downloads\openssl-1.1.1-win64-mingw\openssl-1.1.1-win64-mingw\include -LC:\Users\username\Downloads\openssl-1.1.1-win64-mingw\openssl-1.1.1-win64-mingw\lib -o "roulette.exe" "c:\Users\username\Documents\Progetti_Info\roulette\roulette.c" -lcrypto -lssl

Я получаю здесь такие ошибки, что после недели поиска я не могу понятькак исправить

c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: C:\Users\username\AppData\Local\Temp\ccPlU9Zl.o:roulette.c:(.text+0x23d): undefined reference to `RAND_bytes'
c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: C:\Users\username\AppData\Local\Temp\ccPlU9Zl.o:roulette.c:(.text+0x271): undefined reference to `PKCS5_PBKDF2_HMAC_SHA1' 

Вот фрагмент кода, если вам нужно взглянуть

#include "openssl/evp.h"
#include "openssl/sha.h"
#include "openssl/rand.h"


    char *input = "test";
    int length = 4;

    int ITERATION = 512000;

    int SHA1_LEN = 20;
    unsigned char* out = (unsigned char*)calloc(SHA1_LEN, sizeof(unsigned char));

    int SALT_LEN = 5;
    unsigned char* salt = (unsigned char*)calloc(SALT_LEN, sizeof(unsigned char));
    RAND_bytes(salt, SALT_LEN);

    PKCS5_PBKDF2_HMAC_SHA1(input, strlen(input), salt, SALT_LEN, ITERATION, SHA1_LEN, out);
    printf("%s", out);

, спасибо всем, кто попытается помочь мне решить эту проблему

...