CZM708033 2023-02-18 21:37 采纳率: 0%
浏览 9

程序使用Crypto++之后报错

使用Crypto++报错

上代码

#include <iostream>
#include "CryptoPP\include\aes.h"
#include "CryptoPP\include\hex.h"
#include "CryptoPP\include\modes.h"
#include <fstream>
#include <sstream>
#include <winsock2.h>
#pragma comment(lib,"CryptlibD.lib")
using namespace std;
using namespace CryptoPP;
unsigned char iv[16];
string strEncTxt,strDecTxt;
string ReadFileIntoStringaaa(){//这是个读文件的函数,和它没关系
    ifstream ifile("a.txt");
    ostringstream buf;
    char ch;
    while ( buf && ifile.get(ch) )
        buf.put(ch);
    return buf.str();
}
int main(){
    unsigned char key[]="abcdefghijklmnop";
    int keysize = 16;
    strEncTxt=ReadFileIntoStringaaa(); 
    ECB_Mode<AES>::Decryption Decryptor1(key,keysize);
    StringSource(strEncTxt,true,new StreamTransformationFilter(Decryptor1,new StringSink(strDecTxt)));
    cout<<strDecTxt<<endl;
    return 0;
}

[Error] ld returned 1 exit status,一直都是这个
而且我发现似乎我注释掉#pragma也是一样的
是我安装Crypto++的时候出问题了吗?我直接下载别人编译好的lib和include文件夹直接复制粘贴进MinGW64\include\CryptoPP这个目录里的。检查了几遍代码,没有其他的.c或者.cpp,也没拼成mian,也没正在运行的程序(连编译都没过),到底是哪出问题了?

  • 写回答

1条回答 默认 最新

  • CodeBytes 2023-02-18 21:50
    关注

    该回答引用ChatGPT

    这个错误是链接错误,可能是编译器没有找到需要链接的库。在这个程序中,需要链接CryptlibD.lib库,但是可能没有正确配置编译器以使用这个库。

    可以尝试以下几个步骤:

    检查编译器的路径是否包含了CryptlibD.lib库。你可以打开编译器的设置或环境变量,查看是否包含了这个库的路径。

    检查CryptlibD.lib库的文件路径是否正确。你可以尝试手动定位到这个库的位置,确认它是否存在。

    尝试在程序中添加库的链接选项。如果使用的是g++编译器,可以在编译命令中添加-lCryptlibD选项,指示编译器链接这个库。如果使用的是Visual Studio编译器,可以在项目的属性中添加这个库的路径和名称。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月18日

悬赏问题

  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计