2011-12-14 3 views
1

Почему я получаю эту ошибку LNK при попытке скомпилировать эту библиотеку: RSA http://www.efgh.com/software/rsa.txt из http://www.efgh.com/software/rsa.htmLNK Ошибка при компиляции библиотеки RSA

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

ответ

1

Пожалуйста, добавьте новую функцию в MPUINT.CPP:

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

С уважением,

Чунг,

1

Поскольку вы не указали файл библиотеки в настройках линкера , Файл библиотеки содержит фактические определения API, которые вы используете в своем коде. В вашем примере, вы включили заголовочный файл, который каким-то образом или где-то объявленную функцию со следующей подписью:

void __cdecl numeric_overflow(void) 

Но вы не включили библиотеку, которая определяет функцию. Библиотека указана в настройках проекта -> Свойства Configuration -> Linker -> Input -> Additional Dependencies в визуальной студии.

В этом поле вы указываете файл библиотеки, который соответствует используемой вами функции.

+1

Если этого недостаточно, вам нужно связаться с автором библиотеки, которую вы используете, и спросить его, где он ее получил. –

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/

Regard,

Tru ng,