Компиляция с libssl не работает
У меня очень простой код:
#include <openssl/sha.h>
int main() {
SHA_CTX sha1;
SHA_Init(&sha1);
}
Я установил оба libssl-dev
а также libcrypto++-dev
:
Однако у меня сбой сборки с помощью следующей команды:
$ gcc -lcrypto -lssl main.c
/tmp/ccfnCAxT.o: In function `main':
main.c:(.text+0x1f): undefined reference to `SHA1_Init'
collect2: error: ld returned 1 exit status
$
$ gcc -lssl main.c
/tmp/ccfnCAxT.o: In function `main':
main.c:(.text+0x1f): undefined reference to `SHA1_Init'
collect2: error: ld returned 1 exit status
Платформа: Ubuntu 16.04
1 ответ
Решение
-lssl
не нужно, -lcrypto
достаточно, и это должно быть в конце:
gcc -o main main.c -lcrypto
(или как вы хотите, чтобы ваша программа вызывалась, идет после -o
)