构建GCC需要GMP 4.2 +,MP​​FR 2.3.1+和MPC 0.8.0+


72

我从http://www.netgull.com/gcc/releases/gcc-4.5.0/下载了GCC 4.5,但是当我尝试设置/构建时,出现以下错误:

在相应目录中存在以下库

我没有在盒子的任何地方安装libmpc.a库。

根据错误我怎么知道:

a)已安装libgmp.a和libmpfr.a的当前版本。

b)如果它们的版本不正确,如何在不打扰当前版本的情况下部署自己的版本?


52
尝试./contrib/download_prerequisites.sh从gcc源目录运行。它为我工作(尽管当前版本的gcc(gcc-4.7
塞巴斯蒂安

23
该脚本似乎不再具有.sh扩展名:./contrib/download_prerequisites
Jeroen 2014年

4.6中添加了download_prerequisites.sh。4.5.0没有它。
bobpaul

Answers:


11

在我安装了那些库的目录(/usr/gnu64/lib)中,我还有一个libgmp.la文件(andlibmpc.lalibmpfr.lafiles),其中包含可读文本。SO版本信息已在其中,但与“产品版本”并不完全相同。相反,它讲述了链接兼容性。

我正在尝试研究我拥有的版本,而提出的怪异解决方案是运行使用该-v选件构建的GCC(4.6.1)。它部分说:

因此,看来我已经安装了GMP 5.0.2(但是我使用5.0.1构建了GCC),MPFR 3.1.0(但是我使用3.0.0构建了GCC)和MPC 0.9(但是我使用0.8.2构建了GCC )。之所以出现不匹配,是因为我尝试编译并安装GCC 4.6.2,并且大概需要较新的版本。(我没有成功,但这是另一回事。)

我安装我的定制库中/usr/gnu64/lib,然后告诉GCC这就是与配置选项找到它们--with-mpfr=/usr/gnu64/lib--with-gmp=/usr/gnu64/lib--with-mpc=/usr/gnu/64/lib。这些路径被硬连线到GCC中,并从那里开始工作。


我尝试了相同的步骤,但是使用--with-gmp / mpfr将.a和.la复制到本地文件夹,但是仍然显示相同的错误。我也从gcc.gnu.org/pub/gcc/infrastructure [gmp-4.3.2.tar.bz2,mpfr-2.4.2.tar.bz2,mpc-0.8.1.tar .gz],但建立了mpc状态-配置:错误:需要GMP版本> = 4.2,而gcc仍然停留在同一错误。
程序员

@Prakash:在这种情况下,假设GCC及其配置套件知道它在做什么,然后继续编译和安装其他三个库。我一直将其作为单独的操作来完成,而不涉及GCC(即使GCC触发了重建)。我相信可能有一种方法可以使GCC逐步构建和安装库-通过在GCC源代码树中包含GMP,MPFR和MPC的源代码。检查./configure --help输出以获取信息。
乔纳森·勒夫勒

2
自编写此书以来,我开始让GCC与编译器一起构建GMP,MPFR和MPC的版本。现在,我获得该库当前版本的源代码,并将其解压缩到GCC源代码的顶级目录中:gmp-6.0.0,mpfr-3.1.2等。然后为它们分别创建一个符号链接。 :ln -s gmp-6.0.0 gmp; ln -s mpfr-3.1.2 mpfr; ln -s mpc-1.0.2 mpc。然后,我运行GCC配置和构建,GCC也会构建这些库。
乔纳森·勒夫勒

175

在gcc目录中,执行以下命令:

在该脚本之后,即可准备使用GMP,MPFR和MPC。继续./configure


2
试图在Windows上的ubuntu上的bash上安装gcc 6.2,此命令对我有用。谢谢!
Emile Vrijdags '16

3
感谢那。我被困在没有机器的机器上sudo,这解决了我的麻烦
Arnon

2
我整天都在寻找。非常感谢!
斯蒂芬·C

3
你是我的英雄。
丹尼尔·布鲁克斯

4
死了,这应该是正确的答案。超级明星。
–evensis

64

我在尝试安装/编译GCC 4.8.1时遇到了同样的问题。这是我解决的方法:

在Debian中,只需运行以下两个命令:


2
在Amazon Linux上,它是sudo yum install libmpc-devel
Jonathon Hill

1
Centos还需要sudo yum install libmpc-devel
bebbo

在ubuntu 16上是sudo apt-get install libmpc-dev

19

我在编译GCC 4.9分支时遇到了同样的问题。

对于基于Red HatFedora的系统,运行以下命令:

sudo yum install gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel

这将为整数,浮点数和复数安装GNU多精度(MP)库。


0

Centos7:sudo yum安装libmpc-devel


很高兴为您提供答案。仅供参考,而不只是给出答案这对其他人很有帮助,告诉您为什么要运行该命令以及该命令应执行的操作。确保您回答所有提出的问题也是一个好主意
乔什(Josh),
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.