即使使用 lib 文件也无法修复未解析的外部符号 _AES_encrypt
Can't fix unresolved external symbol _AES_encrypt even with lib files
我需要使用 openssl 库进行加密。
我读了这篇文章 :
- Openssl aes.h [Linker error] undefined reference to
- https://msdn.microsoft.com/en-us/library/799kze2z.aspx?f=255&MSPPError=-2147217396
我做了什么:
- 已从 here 下载适用于 VS2012 的 OpenSSL 预编译库。
在 :
添加了这个地址
General > Additional Include Directories : openssl-1.1.0h\openssl-1.1.0f-vs2012\include
Linker > Additional Include Directories : openssl-1.1.0h\openssl-1.1.0f-vs2012\lib
我使用了 openssl 的默认示例,但出现此错误:
1>AES_Encryption 2.obj : error LNK2001: unresolved external symbol
_AES_set_encrypt_key 1>AES_Encryption 2.obj : error LNK2001: unresolved external symbol _AES_decrypt 1>AES_Encryption 2.obj : error
LNK2001: unresolved external symbol _AES_encrypt 1>AES_Encryption
2.obj : error LNK2001: unresolved external symbol _AES_set_decrypt_key
我做错了什么?
编辑:这是我的简单代码:
#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();
}
你的 c 文件 编译 很好,但它 link 不正确,因为你没有指示 link使用必要的 .lib 文件 link。
您需要将 #pragma comment(lib, "libssl.lib")
或类似的东西(不确定 actuel .lib 文件的名称)放入您的源文件中。
我需要使用 openssl 库进行加密。
我读了这篇文章 :
- Openssl aes.h [Linker error] undefined reference to
- https://msdn.microsoft.com/en-us/library/799kze2z.aspx?f=255&MSPPError=-2147217396
我做了什么:
- 已从 here 下载适用于 VS2012 的 OpenSSL 预编译库。
在 :
添加了这个地址General > Additional Include Directories : openssl-1.1.0h\openssl-1.1.0f-vs2012\include
Linker > Additional Include Directories : openssl-1.1.0h\openssl-1.1.0f-vs2012\lib
我使用了 openssl 的默认示例,但出现此错误:
1>AES_Encryption 2.obj : error LNK2001: unresolved external symbol _AES_set_encrypt_key 1>AES_Encryption 2.obj : error LNK2001: unresolved external symbol _AES_decrypt 1>AES_Encryption 2.obj : error LNK2001: unresolved external symbol _AES_encrypt 1>AES_Encryption 2.obj : error LNK2001: unresolved external symbol _AES_set_decrypt_key
我做错了什么?
编辑:这是我的简单代码:
#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();
}
你的 c 文件 编译 很好,但它 link 不正确,因为你没有指示 link使用必要的 .lib 文件 link。
您需要将 #pragma comment(lib, "libssl.lib")
或类似的东西(不确定 actuel .lib 文件的名称)放入您的源文件中。