4

我尝试在我的 Windows 7 64 位计算机上构建 GMP,所以我运行config.guess并获取k10-pc-msys. (我使用 msys2 和 mingw64)

然后我跑了

./configure --prefix=/c/gmp-6.1.0 --build=k10-pc-msys --enable-cxx

但这会因此错误而退出

checking size of mp_limb_t... 4
configure: error: Oops, mp_limb_t is 32 bits, but the assembler code
in this configuration expects 64 bits.

所以我再次运行配置ABI=64(考虑强制mp_limb_t为 64 位),但这以同样的错误结束。在此之后,我尝试添加CC="g++"(思考--enable-cxx需求g++),但我再次收到此错误。

我对此进行了很多搜索,发现在 GitHub 上向 juliaLang报告的一个问题看起来与我的问题很接近,但该解决方案似乎对我不起作用,因为我没有使用 Julia。

有谁知道这个错误并找到了修复它的方法?

注意:我看到 msys2 已经安装并且可以使用了。但是我的程序的运行时间仅通过使用从 msys2 安装的 GMP 构建 NTL 增加了大约 70%。我认为这是因为它不是为我的计算机构建的,所以它根本没有优化。

编辑:即使没有任何设置(只是./configure --prefix=/c/gmp-6.1.0)也会以同样的错误退出。

背景:我想使用NTL的线程安全构建。但是为了构建 NTL 线程安全,我必须使用 GMP。

4

1 回答 1

5

这可以通过添加--host=x86_64-w64-mingw32到配置命令来解决。通常建议使用 Autotools 或某种形式的 Windows 64 位配置脚本来构建软件。

您可以在 MinGW-w64 wiki 上阅读此页面以了解有关这些内容的更多信息。

于 2015-11-23T16:16:00.500 回答