2

我正在尝试使用 Crypto++(使用 Code::Blocks)创建一个 C++ 程序,但一直遇到同样的问题。我正在使用此代码的精简版本:http: //andreyvitdev.blogspot.com/2005/10/crypto-usage-sample.html ,但我无法编译。

#include "cryptopp/blowfish.h"
#include "cryptopp/osrng.h"

using namespace CryptoPP;

int main (int argc, char** argv) {

    byte key[Blowfish::DEFAULT_KEYLENGTH],
            iv[Blowfish::BLOCKSIZE];

    AutoSeededRandomPool rng (true);
    rng.GenerateBlock(key, sizeof (key));
    rng.GenerateBlock(iv, sizeof (iv));

}

我收到多个错误,开头是:“C:\Users\Utilisateur\Programming\C++\CodeBlocks\Crytp tester\main.cpp|13|undefined reference to `CryptoPP::RandomNumberGenerator::GenerateBlock(unsigned char*, unsigned int) '"

我错过了什么吗?在不同的站点上有许多必须导入的库的引用,但我无法弄清楚它们在 crypto++ 文件夹中的位置:http ://www.cryptopp.com/#download

4

1 回答 1

5

“未定义的引用”是一个链接器错误——要么你没有构建 Crypto++ 库,要么没有告诉链接器链接到它。

不过,我不确定它是否会使用 MinGW(最常见的带有代码块的编译器)构建。Microsoft 编译器(连同 Visual Studio)是免费的;并使用 Code::Blocks 和 Crypto++ 显式测试。

于 2011-08-10T16:35:16.683 回答