我最近安装了gcc 6.1,专门用于标题中提到的库(gmp / mpfr / mpc)我按照gnu网站的说法:
GNU多精度库(GMP)版本4.3.2(或更高版本) 有必要建立海湾合作委员会。如果在a中找到GMP源分发 你的GCC源名为gmp的子目录,它将一起构建 与GCC。或者,如果已安装GMP但未安装GMP 你的图书馆搜索路径,你将不得不配置 --with-gmp配置选项。另请参阅--with-gmp-lib和--with-gmp-include。只有download_precessments安装的GMP版本才支持树内构建。
与其他库相似,即我在下载了我的GCC目录中复制的最后一个版本的源代码,然后在假设它本来就是gcc的“configure”,“make”和“make install”之前与gcc一起构建。但是,当我尝试运行一个使用gmp库的编译项目时,它会说:
error while loading shared libraries: libgmp.so.10: cannot open shared object file: No such file or directory
所以我在寻找共享对象的位置,但我无法找到GCC安装它的位置。
我是否应该在安装gcc之前首先编译GMP / MPFR和MPC?因为我认为没有必要。如果我不需要编译库,那么GMP / MPFR和MPC应该安装在哪里?
进一步的细节:
我猜我不会做任何奇怪和复杂的事情。
1.我下载了gcc并将源放在一个目录中。
我下载了所有这些库,作为tar文件;
3.在gcc源根目录(gmp,mpfr和mpc)中创建了三个文件夹,并扩展了此类文件夹中上一步的目录。
4.对于gcc,我执行了./configure --prefix=/path/to/gcc_build
我执行了make
6.然后make install
如果我不使用这些库,我可以编译并执行而不会出现问题,当我需要这些库时,它会在成功编译后返回我提到的错误。如果我查看lib/
和lib64/
路径,则没有任何与gmp库相关的内容。
答案 0 :(得分:0)
如果我错了,请纠正我。
我使用cygwin从他们的源网站编译GCC 6.3.0,经过研究后跟着这篇文章Here首先我编译了GCC基础设施,包括GMP,MPFR,MPC也是libelf,ppl(可选)。然后尝试使用这个command编译GCC(因为我的目标是针对Linux的GCC,所以我的目标是i686-pc-linux-gnu)。我编译GCC基础设施并将前缀添加到
--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时总是会出错。
我已经完成了这个方法,为i686-pc-linux-gnu编译GCC也是binutils。但是我没有尝试使用cygwin来编译linux内核。
对不起我的英语,对不起,如果我的答案是OOT。