GMP - 某些功能未声明,其他功能是? C ++ / MinGW的

时间:2015-04-27 02:47:42

标签: c++ mingw gmp

在windows中构建一个我在Linux中使用GMP库的C ++项目。我正在使用预编译的静态MinGW库并包含来自此处的文件 - http://cs.nyu.edu/~exact/core/gmp/index.html

一切似乎进展顺利(mpz_init,mpz_mul等),除非我到达mpz_powm_sec()。

mpz_powm_sec(m, c, d, n);

该行给出:

error: 'mpz_powm_sec' was not declared in this scope

然而,我对GMP的其他提及都没有。有谁知道为什么会发生这种情况以及我可以做些什么来使其编译?

2 个答案:

答案 0 :(得分:1)

GMP的官方网站是https://gmplib.org/。您从该第三方网站下载的版本已超过12年,从那时起该库已经发展了很多。

答案 1 :(得分:1)

尽管https://gmplib.org有官方GMP网站,但与MinGW.org的编译器工具链一起使用的预编译二进制文件的规范来源是https://sourceforge.net/projects/mingw/files/的SourceForge存储库;最新的GMP MinGW版本为https://sourceforge.net/projects/mingw/files/MinGW/Base/gmp/gmp-5.1.2/,(对于标题和导入库,您需要" -dev"包,对于运行时绑定,可能需要" -dll" )。

如果您使用由MinGW开发人员自己准备的二进制文件,它们将与MinGW一起进行测试;如果您抓住第三方构建版本,它们可能会过时,可能无法正常工作,并且您自己就可以了。