当GMP,MPC和MPFR的库文件与其头文件分开时,如何安装GCC?

时间:2014-06-01 22:57:39

标签: c++ macos gcc compiler-construction

我认为这是我安装GCC的问题。我一直在

checking for the correct version of gmp.h... yes
checking for the correct version of mpfr.h... yes
checking for the correct version of mpc.h... yes
checking for the correct version of the gmp/mpfr/mpc libraries... no

当我输入

/Users/[username]/Documents/gcc-4.8.3/configure --with-gmp=/usr/local
--with-mpc=/usr/local --with-mpfr=/usr/local

,[username]是我的实际用户名。

我安装了GMP,MPC和MPFR,但三者的文件分布在/ usr / local中的不同文件夹中。所有头文件都在/ usr / local / include中,但库文件在/ usr / local / lib中。

1 个答案:

答案 0 :(得分:3)

你应该能够从中找到答案:

$ ~/src/gcc/gcc/configure --help | fgrep gmp
  --with-gmp-dir=PATH     this option has been REMOVED
  --with-gmp=PATH         specify prefix directory for the installed GMP
                          --with-gmp-include=PATH/include plus
                          --with-gmp-lib=PATH/lib
  --with-gmp-include=PATH specify directory for installed GMP include files
  --with-gmp-lib=PATH     specify directory for the installed GMP library

此外,https://gcc.gnu.org/install/prerequisites.html

  

或者,如果已安装GMP但它不在您的库搜索路径中,则必须使用--with-gmp配置选项进行配置。另请参阅--with-gmp-lib--with-gmp-include

当然,https://gcc.gnu.org/install/configure.html

  

--with-gmp= 路径名
  --with-gmp-include= 路径名
  --with-gmp-lib= 路径名
  --with-mpfr= 路径名
  --with-mpfr-include=的路径名
  --with-mpfr-lib= 路径名
  --with-mpc= 路径名
  --with-mpc-include= 路径名
  --with-mpc-lib= 路径名
      如果您想构建GCC但没有GMP库,MPFR库和/或MPC库安装在标准位置并且没有它们的源存在于GCC源代码树中,那么您可以显式指定它们所在的目录已安装('--with-gmp= gmpinstalldir ','--with-mpfr = mpfrinstalldir ','--with-mpc= mpcinstalldir ' )。 --with-gmp= gmpinstalldir选项是--with-gmp-lib= gmpinstalldir /lib--with-gmp-include= gmpinstalldir /include的简写。同样,--with-mpfr= mpfrinstalldir 选项是--with-mpfr-lib= mpfrinstalldir /lib--with-mpfr-include= mpfrinstalldir /include--with-mpc= mpcinstalldir 选项也是--with-mpc-lib= mpcinstalldir /lib--with-mpc-include=的简写 mpcinstalldir /包括。如果这些简写假设不正确,您可以直接使用显式include和lib选项。在构建和使用GCC时,您可能还需要确保动态链接器可以找到共享库,例如通过设置GNU / Linux和Solaris系统上的运行时共享库​​路径变量(LD_LIBRARY_PATH)。

这应该很明显,这些文件不会全部存在于一个目录中,这是完全正常的,甚至是预期的。几乎所有UNIX软件都在不同的目录中安装头文件和库。

通常更容易在树中构建这些库并静态地将GCC链接到它们,如http://gcc.gnu.org/wiki/InstallingGCC所述