Не удается исправить неразрешенный внешний символ _AES_encrypt даже с помощью файлов lib - PullRequest
0 голосов
/ 02 мая 2018

Мне нужно использовать библиотеку openssl для моего шифрования.

Я читаю эти темы:

Что я сделал:

  1. Загруженная предварительно скомпилированная библиотека OpenSSL для VS2012 с здесь .
  2. Добавлены эти адреса в:

    Общие> Дополнительные каталоги включения: openssl-1.1.0h \ openssl-1.1.0f-vs2012 \ include

    Linker> Дополнительные каталоги включения: openssl-1.1.0h \ openssl-1.1.0f-vs2012 \ lib

  3. Я использовал образец OpenSSL по умолчанию, но я получаю следующие ошибки:

1> AES_Encryption 2.obj: ошибка LNK2001: неразрешенный внешний символ _AES_set_encrypt_key 1> AES_Encryption 2.obj: ошибка LNK2001: неразрешенный внешний символ _AES_decrypt 1> AES_Encryption 2.obj: ошибка LNK2001: неразрешенный внешний символ _AES_encrypt 1> AES_Encryption 2.obj: ошибка LNK2001: неразрешенный внешний символ _AES_set_decrypt_key

Что я сделал не так?

edit: и вот мой простой код:

#include <fstream>
#include <iostream>
#include <stdio.h>
#include <string>
#include <openssl/aes.h>

void main()
{
unsigned char inbuffer[1024];
unsigned char encryptedbuffer[1024];
unsigned char outbuffer[1024];

unsigned char oneKey[] = "abc";
AES_KEY key; 

AES_set_encrypt_key(oneKey,128,&key); /// error LNK2001: unresolved external symbol _AES_set_encrypt_key
getchar();

}

1 Ответ

0 голосов
/ 02 мая 2018

Ваш файл c хорошо компилируется , но он не не связывает правильно, потому что вы не указали компоновщику связать необходимые файлы .lib.

Вам нужно поместить #pragma comment(lib, "libssl.lib") или что-то подобное (не уверенное в названии файла actuel .lib) в ваш исходный файл.

...