我正在尝试使用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 |未定义引用`CryptoPP :: RandomNumberGenerator :: GenerateBlock(unsigned char *, unsigned int)'“
我错过了什么吗?在不同站点上有许多必须导入的库的引用,但我无法弄清楚它们在crypto ++文件夹中的位置:http://www.cryptopp.com/#download
答案 0 :(得分:4)
“未定义的引用”是一个链接器错误 - 要么您没有构建Crypto ++库,要么没有告诉链接器链接到它。
如果它使用MinGW(最常见的编码器编译器)构建,我不肯定。 Microsoft编译器(以及Visual Studio)是免费的;并使用Code :: Blocks和Crypto ++进行显式测试。