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

GMP - Certain Functions not declared, others are? C++/MinGW

本文关键字:功能 C++ 分钟 其他 未声明 GMP      更新时间:2023-10-16

在Windows中,我正在构建一个C++项目,我在使用GMP库的Linux中工作。我正在使用预编译的静态 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的其他引用都没有。有谁知道为什么会发生这种情况以及我可以做些什么来编译它?

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

尽管

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一起进行测试;如果你抓取第三方版本,它们很可能已经过时,可能无法工作,而且你几乎只能靠自己。