4

我花了一整天的时间来设置 GCC

http://cygwin.wikia.com/wiki/How_to_install_GCC_4.3.0

在 gcc make 步骤中,它告诉我无论出于何种原因它都需要一个 c++ 编译器来继续,所以我以通常的方式更新了 Cygwin 并获得了 gcc-c++。

之后,cgywin 帮我删除了我之前安装的 3 个 prereq 库,

所以我开始重新制作它们。GMP 工作正常,然后我进入 MPFR。无论出于何种原因,MPFR 都会引发此错误:

configure: error: libgmp not found or uses a different ABI.

资源在这里提到了这个错误

我很确定它可以找到 GMP,因为 cygcheck 显示它没有问题,配置甚至提到它找到了它。

当我尝试:

./configure --with-gmp-build=/gmp/,

它抛出:

error: header files gmp-impl.h and longlong.h not found

到目前为止,尽管谷歌搜索并尝试了几个小时,但我仍然无法让 MPFR 正常工作。

MPC 也无法以通常的方式找到 GMP。

我还尝试将库交给子目录中的 GCC 并让它编译它们。

当我尝试这样做时,它会进入 make 步骤,然后抛出stage1-bubble错误并失败。没有错误或任何内容的描述。

我不知道还能尝试什么。

4

4 回答 4

4

编译和安装 gmp 后,我在构建 mpfr 时遇到了同样的问题,直到我正确设置了库搜索路径:

export LD_LIBRARY_PATH=/usr/local/lib
export LIBRARY_PATH=/usr/local/lib
export CPATH=/usr/local/include

http://cygwin.wikia.com/wiki/How_to_install_GCC_4.3.0中所述

于 2012-01-20T06:45:03.667 回答
1

而不是这个:

./configure --with-gmp-build=/gmp/

用这个:

./configure --with-gmp-build=/gmp

它不喜欢末尾有“/”。

于 2012-06-10T01:29:25.783 回答
0

您可能想使用 --with-gmp-lib=/path/to/gmp/lib/dir

于 2017-09-06T09:14:24.610 回答
0

我知道这篇文章有点过时了,但我一直在寻找类似情况的答案或结果,但相同库的当前版本要多得多。在阅读这篇文章以获取一些建议以及其他在线材料时,我能够将所有内容拼凑在一起。因此,对于任何可能正在使用最新版本的人来说:


首先,您可能希望首先为 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。

于 2018-04-17T10:23:50.297 回答