即使使用lib文件

时间:2018-05-02 09:23:55

标签: c++ c visual-studio-2012 openssl

我需要使用openssl库进行加密。

我读了这篇帖子:

我做了什么:

  1. here下载了针对VS2012的OpenSSL预编译库。
  2. 在以下网址添加了此地址:

      

    一般>其他包含目录: openssl-1.1.0h \ openssl-1.1.0f-vs2012 \ include

         

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

  3. 我使用了openssl的默认示例,但是我收到了这个错误:

  4.   

    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

    我做错了什么?

    编辑:这是我的简单代码:

    #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 :(得分:2)

您的c文件编译正常,但它没有链接,因为您没有指示链接器链接必要的.lib文件。

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