Gcc 让MPFR在cygwin上构建

Gcc 让MPFR在cygwin上构建,gcc,cygwin,gmp,mpfr,Gcc,Cygwin,Gmp,Mpfr,我花了一整天的时间按照 关于GCC的一步,它告诉我它需要一个C++编译器来继续任何原因, 所以我用通常的方式更新了Cygwin,得到了gcc-c++ 之后,cgywin礼貌地删除了我之前安装的3个prereq库 所以我开始重新制作它们。GMP运作良好,然后我进入了MPFR。无论MPFR出于何种原因抛出此错误: configure: error: libgmp not found or uses a different ABI. 参考资料中提到了这个错误 我非常确定它的发现是正确的,因为cyg

我花了一整天的时间按照

关于GCC的一步,它告诉我它需要一个C++编译器来继续任何原因, 所以我用通常的方式更新了Cygwin,得到了gcc-c++

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

所以我开始重新制作它们。GMP运作良好,然后我进入了MPFR。无论MPFR出于何种原因抛出此错误:

configure: error: libgmp not found or uses a different ABI.
参考资料中提到了这个错误

我非常确定它的发现是正确的,因为cygcheck显示它没有问题,配置甚至提到它找到了它

当我尝试时:

./configure --with-gmp-build=/gmp/,
它抛出:

error: header files gmp-impl.h and longlong.h not found
到目前为止,我还不能让MPFR工作,尽管谷歌搜索和尝试了几个小时

MPC也未能以通常的方式找到GMP

我还尝试将库交给GCC的一个子目录,并让它编译它们

当我尝试这样做时,它进入make步骤,然后抛出一个
stage1泡泡
错误并失败。没有对错误或任何东西的描述


我不知道还有什么可以尝试。

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

export LD_LIBRARY_PATH=/usr/local/lib
export LIBRARY_PATH=/usr/local/lib
export CPATH=/usr/local/include
正如在

中所解释的,而不是:

./configure --with-gmp-build=/gmp/
使用以下命令:

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

它不喜欢在结尾有“/”。

你可能想用--gmp lib=/path/to/gmp/lib/dir

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


<>首先,您可能想将C和C++作为静态LIBs先配置、制作和安装GMP;还要注意架构x86或x64。运行make、check、makeinstall之后;如果您确信没有错误,那么当您转到“配置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的帮助下通过VisualStudio构建MPIR,但至于GMP,我需要Cygwin和GCC。我花了一点时间才弄明白如何正确构建GMP,但一旦我这样做并运行了测试,我就能够在0次失败的情况下全部通过。然后我和你一样开始与MPFR合作

我的类似问题是在我运行./configure作为默认值之后,它给了我一个消息,即找不到libgmp。另外,如果我尝试调用make,它也不会做任何事情,因为make文件不存在。这让我又开始做谷歌搜索。。。在搜索提示、建议等时,我遇到了这个Q/A。当我阅读这个Q/A、安装文件、一些其他常见问题解答甚至另一个网站时,我能够将所有内容拼凑在一起,我发现有效的就是我上面的建议

您不仅需要设置标志——使用gmp构建,而且还需要设置gmp构建为的适当库类型,并且需要确保架构类型也匹配。他们需要有相同的匹配ABI


啊,就在我即将完成键入此答案时,检查一下刚刚完成的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

gmp、mpfr等的构建都应该在cygwin源代码中为您设置。它们的主要用途之一是支持编译器,这种用法不适合VisualStudio。我不确定您提到静态库的意图,但我发现,如果有可能找到另一个已经安装的版本,确保同时构建静态库和动态库是很重要的,因为混合版本会破坏它们。@tim18我不习惯手动执行此操作。我理解编译、链接等的过程,但是来自C++的Visual Studio多年的工作,现在只需跳入UNIX POSIX BASH GCC C代码…这是很难找到帮助时,有这么多的部分涉及。。。例如:使用命令行编译链接并生成。。。我只是习惯了VisualStudio;而Cygwin我似乎无法链接这些库。我文雅地访问了他们的网站,下载了最新的发行版,并亲自制作。这当然是一个学习曲线。@tim18我只是根据gmp和mpfir的文件来做的。我只是想让代码在gcc/g++中编译和工作。然后,我将尝试将代码移植到visual c/c++中,以删除任何POSIX依赖项。