неопределенная ссылка на `SHA1' в C

Я пытаюсь скомпилировать этот код, написанный на C:

#include <stdio.h>
#include <stdlib.h>
#include <C:\OpenSSL-Win32\include\openssl\sha.h>
#include <string.h>

main() {
char data[] = "Hello, world!";
size_t length = strlen(data);

unsigned char hash[SHA_DIGEST_LENGTH];
SHA1(data, length, hash);
}

Я использую Dev-С++. Это дает мне ошибку: неопределенная ссылка на `SHA1'. Я создал этот пост: Неопределенная ссылка на `SHA1', но я не решил проблему. Может кто-нибудь мне помочь?


person MrCaptain Alex    schedule 08.11.2018    source источник
comment
Вам нужно связать библиотеку, которая предоставляет функцию SHA1, части настройки компоновщика ответа, на который вы ссылаетесь.   -  person Rup    schedule 08.11.2018
comment
Я уже добавил 2 '.a' в настройки компоновщика, что еще?   -  person MrCaptain Alex    schedule 08.11.2018
comment
Вы, должно быть, не сделали это правильно.   -  person Barmar    schedule 08.11.2018
comment
Я просто зашел в Project -> Project Option -> Parameters -> Add Library и выбрал два '.a'   -  person MrCaptain Alex    schedule 08.11.2018


Ответы (1)


MrCaptain Alex, Rup и Barmar написали, как правильно, но в моем случае, у меня Ubuntu, когда я линкую, необходимо добавить библиотеку -L/usr/lib -lcrypto:

$ gcc -o executable_file source_file.c -L/usr/lib -lcrypto

Это все ;-)

person steels    schedule 25.09.2019