您的位置:首页 > 产品设计 > UI/UE

【转载】gcc configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0

2016-04-04 22:11 519 查看
转自:http://blog.sina.com.cn/s/blog_493667730100zt6n.html

svn checkout svn://gcc.gnu.org/svn/gcc/trunk拿了GCC的最新代码,打算编译了学东西习学习C++ 11的东西,结果在configure的时候出现如下问题:

Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+
http://www.multiprecision.org/mpc 下载mpc-0.9.tar.gz

ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.bz2下载gmp-5.0.1.tar.bz2
http://ftp.gnu.org/gnu/mpfr/下载mpfr-3.1.0.tar.xz。
先开始安装GMP。解压GMP的压缩包后,得到源代码目录gmp-5.0.1。在该目录的同级目录下建立一个临时的编译目录,这里命名为temp。然后开始配置安装选项,进入temp目录,输入以下命令进行配置:

  ../gmp-5.0.1/configure --prefix=/usr/local/gmp-5.0.1

make

sudo make install

mpfr和mpc的安装方法与gmp类似。不过要注意配置的时候要把gmp与mpfr的依赖关系选项加进去,具体配置命令如下:

  ../mpfr-3.1.0/configure --prefix=/usr/local/mpfr-3.1.0 --with-gmp=/usr/local/gmp-5.0.1

  ../mpc-0.9/configure --prefix=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0

  安装好这三个库之后,就可以正式开始安装gcc了。

当然了链接的时候,需要刚刚编译的3个lib。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.9/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-3.1.0/lib 

#####这种方法在重启终端后失效,所以直接将他写入/etc/profile比较好

-------------------------------------------------------------------

或者:

安装三个依赖库完毕之后记住一定要把库路径添加到 /etc/ld.so.conf文件中

vi /etc/ld.so.conf

添加

/usr/local/gcc/gmp-4.3.2/lib

/usr/local/gcc/mpfr-2.4.2/lib

/usr/local/gcc/mpc-0.8.1/lib

添加路径完之后一定要执行

ldconfig

让新添加的路径进入动态链接库cache

参见:http://blog.csdn.net/u010445083/article/details/9298399
http://kmoving.blog.163.com/blog/static/205049197201267113438532/
-------------------------------------------------------------------

然后是典型的configure,make,install三步曲。

../trunk/configure --prefix=/usr/local/gcc-4.7 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++

  --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0 --with-mpc=/usr/local/mpc-0.9

make

make check(可选)

sudo make install

经过漫长的等待:

/usr/local/gcc-4.7/bin/g++ -v

使用内建 specs。

COLLECT_GCC=/usr/local/gcc-4.7/bin/g++

COLLECT_LTO_WRAPPER=/usr/local/gcc-4.7/libexec/gcc/x86_64-unknown-linux-gnu/4.7.0/lto-wrapper

目标:x86_64-unknown-linux-gnu

配置为:../trunk/configure --prefix=/usr/local/gcc-4.7 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0 --with-mpc=/usr/local/mpc-0.9

线程模型:posix

gcc 版本 4.7.0 20120113 (experimental) (GCC)

---------------------------------------------------------------------------------------------------------------------------

GMP: http://down.admin5.com/edu_program/c/71472.html
GNU MP 是用C 语言写成的一个便携式库,它可以进行整数、有理数和浮点数的任意精度算术,其目标是为所有需要不能由基本C 类型直接支持的多精度类型的应用提供可能最快的算术。

MPFR: http://www.holoborodko.com/pavel/mpfr/#intro
MPFR library allows user to conduct floating-point calculations with virtually any (restricted by available memory only) precision with correct rounding.

MPC:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: