Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Can';t修复未解析的外部符号_AES_加密,即使使用lib文件_C++_C_Visual Studio 2012_Openssl - Fatal编程技术网

C++ Can';t修复未解析的外部符号_AES_加密,即使使用lib文件

C++ Can';t修复未解析的外部符号_AES_加密,即使使用lib文件,c++,c,visual-studio-2012,openssl,C++,C,Visual Studio 2012,Openssl,我需要使用openssl库进行加密 我读了这篇文章: 我所做的: 已从下载用于VS2012的预编译OpenSSL库 将此地址添加到: 常规>其他包含目录:openssl-1.1.0h\openssl-1.1.0f-vs2012\Include 链接器>其他包含目录:openssl-1.1.0h\openssl-1.1.0f-vs2012\lib 我使用了openssl的默认示例,但出现以下错误: 1> AES_Encryption 2.obj:错误LNK2001:未解析的外部符号 _A

我需要使用openssl库进行加密

我读了这篇文章:

我所做的:

  • 已从下载用于VS2012的预编译OpenSSL库
  • 将此地址添加到:

    常规>其他包含目录:openssl-1.1.0h\openssl-1.1.0f-vs2012\Include

    链接器>其他包含目录:openssl-1.1.0h\openssl-1.1.0f-vs2012\lib

  • 我使用了openssl的默认示例,但出现以下错误:

  • 1> AES_Encryption 2.obj:错误LNK2001:未解析的外部符号 _AES_设置_加密_密钥1>AES_加密2.obj:错误LNK2001:未解析的外部符号_AES_解密1>AES_加密2.obj:错误 LNK2001:未解析的外部符号\u AES\u encrypt 1>AES\u Encryption 2.obj:错误LNK2001:未解析的外部符号\u AES\u集合\u解密\u密钥

    我做错了什么

    编辑:下面是我的简单代码:

    #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();
    
    }
    
    #包括
    #包括
    #包括
    #包括
    #包括
    void main()
    {
    缓冲区中的无符号字符[1024];
    无符号字符加密缓冲区[1024];
    无符号字符溢出器[1024];
    无符号字符oneKey[]=“abc”;
    AES_密钥;
    AES_set_encrypt_key(oneKey,128,&key);///错误LNK2001:未解析的外部符号_AES_set_encrypt_key
    getchar();
    }
    
    您的c文件编译得很好,但它没有正确链接,因为您没有指示链接器链接必要的.lib文件

    您需要将
    #pragma comment(lib,“libssl.lib”)
    或类似内容(不确定actuel.lib文件的名称)放入源文件。

    您的c文件编译良好,但链接不正确,因为您没有指示链接器链接必要的.lib文件


    您需要将
    #pragma注释(lib,“libssl.lib”)
    或类似内容(不确定actuel.lib文件的名称)放入源文件。

    发布您的代码。链接到一个重复的问题,而不解释是什么使你的情况不同,这不会让你得到答案,只会让你的问题以重复的形式结束。@andrenle代码很简单,我在链接openssl时遇到问题,代码补充道。你需要放入
    #pragma comment(lib,“libssl.lib”)
    或类似的东西(不确定actuel.lib文件的名称)添加到源文件中。@MichaelWalz谢谢您,先生,我添加了
    #pragma注释(lib,“libcryptoMD.lib”)#pragma注释(lib,“libcryptoMD.lib”)#pragma注释(lib,“libcryptoMTd.lib”)#pragma注释(lib,“libsslMD.lib”)#pragma注释(lib,“libsslMDd.lib”)#pragma注释(lib,“libsslMT.lib”)#pragma注释(lib,“libsslMTd.lib”)
    现在可以使用了。如果你能把它写在一个新的答案上,我会标记它。发布你的代码。链接到一个重复的问题,而不解释是什么让你的情况不同,这不会给你一个答案,只会让你的问题以重复的形式结束。@AndrewHenle代码很简单,我链接有问题openssl,添加了代码。您需要在源文件中添加#pragma comment(lib,“libssl.lib”)或类似内容(不确定actuel.lib文件的名称)。@MichaelWalz谢谢您,先生,我添加了#pragma comment(lib,“libcryptoMD.lib”)#pragma comment(lib,“libcryptoMDd.lib”)#pragma comment(lib,“libcryptoMT”)#pragma comment(lib,“libcryptoMTd.lib”)#pragma comment(lib,“libsslMD.lib”)#pragma comment(lib,“libsslMDd.lib”)#pragma comment(lib,“libsslMTd.lib”)正在运行。如果您能将其写入新的答案,我会标记它。