gcc 6.1。安装时,gmp/mpfr/mpc不是内置的?

问题描述:

我最近安装了GCC 6.1,专为在标题(GMP/MPFR/MPC)中提到的图书馆我跟着什么GNU网站上说:gcc 6.1。安装时,gmp/mpfr/mpc不是内置的?

GNU多精度库(GMP)4.3版本。 2(或更高版本) 建立GCC的必要条件。如果在名为gmp的GCC源的 子目录中找到GMP源分布,则它将与GCC一起构建为 。或者,如果GMP已安装,但它不在 库搜索路径中,则必须使用 --with-gmp configure选项进行配置。另请参阅--with-gmp-lib和--with-gmp-include。只有安装了download_prerequisites的GMP版本才支持树内构建。

在进行gcc的“configure”,“make”和“make install”之前,其他库类似于我下载的GCC目录中复制的最新版本的源代码,将会与gcc一起构建。然而,当我尝试运行一个编译的项目,它使用GMP库它说:

error while loading shared libraries: libgmp.so.10: cannot open shared object file: No such file or directory 

所以我一直在寻找其*享的对象,但我找不到在哪里海湾合作委员会已经安装了它。

我是否应该在安装gcc之前首先编译GMP/MPFR和MPC?因为我认为这不是必要的。如果我不需要编译GMP/MPFR和MPC应该安装的库?

一些进一步的细节:

我不认为我做了什么奇怪的,复杂的,我猜。 1.我下载了gcc并将源代码放入目录。 2.我下载了所有这些库,作为tar文件; 3.在gcc源代码根目录(gmp,mpfr和mpc)中创建了三个文件夹amd在这些文件夹中扩展了上一步的焦点。 4.海合会我执行./configure --prefix=/path/to/gcc_build 5.我执行make 6.然后make install

如果我不使用这些库,我可以编译和执行,而不必问题,当我需要那些库返回我在编译成功后提到的错误。如果我查看lib/lib64/路径,则没有任何与gmp库相关的内容。

+0

也许更确切地描述你做了什么?通常情况下,当gcc构建gmp/mpfr/mpc作为其构建的一部分时,它仅构建静态版本。你在某处安装了某些版本的这些库吗? –

+0

@Marc Glisse查看更新,并且我没有安装库,我假定他们将在gcc安装期间安装。 – user8469759

+0

解释“编译项目”,你如何链接库?可能你想检查'-rpath',或者在执行项目时尝试添加'LD_LIBRARY_PATH' env。 – Mine

纠正我,如果我错了。

我使用cygwin从他们的源网站编译GCC 6.3.0,经过研究之后,按照这个帖子Here首先我编译GCC,MPFR,MPC也libelf,ppl(可选)的GCC基础结构。然后尝试编译GCC使用这个command(因为我针对Linux的GCC,所以我的目标是i686-pc-linux-gnu)。我编译GCC基础架构并添加前缀为

--prefix=/opt/cross 
--prefix=/opt/cross 

GMP,MPFR,MPC也libelf和ppl。

所以当我编译GCC时,我可以使用。

--with-gmp=/opt/cross --with-mpfr=/opt/cross --with-mpc=/opt/cross 

和GCC会自动跟踪他们在/ opt/cross目录下所需的基础设施。

因为很多时候我尝试

./contrib/download_prerequisites 

以下this方法,总是得到错误,当尝试编译GCC。

我已经完成了这个方法,编译GCC也为i686-pc-linux-gnu binutils。但我没有尝试用cygwin编译linux内核。

对不起,我的英文很抱歉,如果我的答案是OOT。