我知道这篇文章有点过时了,但我一直在寻找类似情况的答案或结果,但相同库的当前版本要多得多。在阅读这篇文章以获取一些建议以及其他在线材料时,我能够将所有内容拼凑在一起。因此,对于任何可能正在使用最新版本的人来说:
首先,您可能希望首先为 C 和 C++ 配置、制作和安装 GMP 作为静态库;还要注意架构 x86 或 x64。一旦你运行make,make check,make install;并且您确信您没有错误,那么当您配置 MPFR 时,您将希望这样运行它:
./configure --with-gmp-build=/path/to/gmp --enable-static --disable-shared
如果路径设置正确,这应该为您提供所需的生成文件。
我是 Unix-Posix 环境和命令的新手,也是 Cygwin 的新手。我主要使用 Windows 平台,很少使用 Mac 或 Apple。事实上,我只在这方面工作了不到一周,因为我正在尝试做同样的事情。所以现在我正在冒险进入一个全新的 Unix 世界……但它是通过 Cygwin 模拟的,因为我仍在运行 Windows。
我正在尝试从最新的原始发行版构建 GMP、MPIR、MPFR 和 MPFRC++,并最终尝试将它们集成到 Visual Studio 2017 中。
我实际上找到了这篇文章,因为我能够在 python 和 vyasm 的帮助下通过 Visual Studio 构建 MPIR,但至于 GMP,我需要带有 GCC 的 Cygwin。我花了一点时间才弄清楚如何让 GMP 正确构建,但是一旦我完成并运行了测试,我就能够以 0 次失败全部通过。然后我开始和你一样使用 MPFR。
我的类似问题是在我默认运行 ./configure 之后,它给了我找不到 libgmp 的消息。此外,如果我尝试调用 make,它不会执行任何操作,因为 make 文件不存在。这使我重新开始进行谷歌搜索......在搜索提示、建议等时,我遇到了这个 Q/A。当我阅读此 Q/A、安装文件、其他一些常见问题解答甚至另一个网站时,我能够将所有内容拼凑在一起,并且我发现有效的方法就是我上面建议的。
您不仅需要设置标志 --with-gmp-build ,还需要设置 gmp 构建的适当库类型,并且您需要确保架构类型也匹配。它们需要具有相同的匹配 ABI。
啊,就在我即将完成输入这个答案时, make check 刚刚完成了 Cygwin 的运行,我得到了以下结果:
Testsuite summary for MPFR 4.0.1
============================================================================
# TOTAL: 180
# PASS: 180
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
============================================================================
我希望这能够帮到你。唯一的事情是为了我自己;我将不得不返回并可能从头开始再次运行所有这些,包括 GMP,因为我相信我只做了 GCC 而不是 G++,我的下一步是尝试构建 MPFRC++。
然后我可能会尝试从这里做一些相关的库。我的第一阶段是尝试通过 Cygwin 和 GCC/G++ 构建它们。下一步将尝试将它们移植到 Visual Studio 2017。