编译rsa库时出现LNK错误

时间:2011-12-14 20:09:39

标签: c++ compiler-errors

为什么我在尝试编译此rsa库时遇到此LNK错误: http://www.efgh.com/software/rsa.txthttp://www.efgh.com/software/rsa.htm

mpuint.obj : error LNK2019: unresolved external symbol "void __cdecl numeric_overflow(void)" (?numeric_overflow@@YAXXZ) referenced in function "public: void __thiscall mpuint::operator=(class mpuint const &)" (??4mpuint@@QAEXABV0@@Z)

3 个答案:

答案 0 :(得分:1)

因为您没有在链接器设置中指定库文件。库文件包含您在代码中使用的API的实际定义。在您的示例中,您包含了一个头文件,该文件以某种方式或某处声明了具有以下签名的函数:

void __cdecl numeric_overflow(void)

但是你没有包含定义该函数的库。该库在项目设置中指定 - >配置属性 - >链接器 - >输入 - > Visual Studio中的附加依赖项字段。

然后在该字段中指定与您使用的函数对应的库文件。

答案 1 :(得分:1)

请在MPUINT.CPP中添加新功能:

void numeric_overflow() {
    printf("Numeric overflow!");
}

此致

忠,

答案 2 :(得分:1)

请注意:此RSA库的性能不太好。 您可以尝试其他库(开源):

  1. xInt(C ++,易于理解,速度快,但此库是Boost库的一部分):http://www.oakcircle.com/xint_docs/
  2. BigDigits(C,轻量级,非常快):http://www.di-mgt.com.au/bigdigits.html
  3. Crypto ++(C ++,重,实现大多数加密算法):http://www.cryptopp.com/
  4. 方面,

    忠,